man uals
NAME
uals - list contents of directories
SYNOPSIS
uals
[-0@abcdefghiklmnopqrstuwxyz
ABCDEFGIKLMNOPQRSTUVWXYZ12789*]
[-w cols] [-W cols] [-I pattern] [-e format]
[-y fields |
--fields={+-zHDiMtmlogKksbrEduacfZT*A}]
[--color={always, auto, never}]
[--time={atime,access,ctime,change,mtime,modify}]
[--sum] [--input] [--blksize=size]
[--all] [--escape] [--directory] [--inode]
[--kilobytes] [--numeric-uid-gid] [--no-group]
[--alpha-uid-gid] [--both-uid-gid]
[--length length] [--maximum length]
[--hide-control-chars] [--mark-special-chars]
[--reverse] [--bytes]
[--width=cols] [--tabsize=cols] [--almost-all]
[--ignore-backups] [--classify] [--file-type]
[--full-time] [--ignore=pattern] [--dereference]
[--list ] [--literal]
[--noheader] [--nototal] [--host]
[--grand_only] [--total] [--two]
[--quote-name] [--recursive]
[--device] [--mount]
[--sort={none,time,size,extension}]
[--format={long,verbose,commas,across,
vertical,single-column}]
[--lc_time=format] [--old-time]
[--o_mode] [--a_mode] [--x_mode]
[--cray] [--acid] [--count]
[--type=filetype] [--t_ne=filetype]
[--s_lt=size] [--s_gt=size] [--size=size]
[--newer=time|file] [--older=time|file]
[--new_c=time|file] [--old_c=time|file]
[--new_u=time|file] [--old_u=time|file]
[--stale=time|file]
[--name=pattern] [--n_ne=pattern]
[--path=pattern] [--p_ne=pattern]
[--d_eq=pattern] [--d_ne=pattern]
[--inum=value] [--link_gt=value]
[--group=group] [--g_ne=group] [--nogroup]
[--g_gt=gid] [--g_lt=gid]
[--user=user] [--u_ne=user] [--nouser]
[--u_gt=uid] [--u_lt=uid]
[--mode=modemask] [--m_ne=modemask] [--acl]
[--or] [--show_filter]
[--comment=comment]
[--help] [--?] [--version]
[name...]
DESCRIPTION
The uals command is an enhanced ls developed at the University of Alaska and grew
from the GNU fileutils-3.12 distribution.
The default display is a long format similar to ls -l with mode displayed in octal,
size displayed as bytes, kbytes, mbytes or gbytes, and time displayed in YYM-
MDD.HHMM format. Specifying any of the following options: -M, -o, -g, -s, -E will
control (limit) what is displayed for each file.
See the examples and notes sections below for further discussion.
OPTIONS
-e | --lc_time format
Define date-time format, defaults to %y%m%d.%H%M
or %y%m%d.%H%M%S for --full-time or --verbose.
The format can also be defined via export LC_TIME=format.
-O | --old-time
Use old (traditional) ls time format.
-g Include group in display.
-o Include owner in display.
-E | --time=mtime | --time=modify | --time=write
Include last modify time in display (default).
-M | --o_mode
Include permissions (mode) in display as octal (default).
Use -P | --a_mode for the traditional alpha mode display.
--x_mode
Include permissions (mode) in display, 32bits as xfffff.o7777.
-P | --a_mode
Include permissions (mode) in display in alpha format.
-s | --bytes
Include size in bytes of each file in display.
The default is -k which displays as bytes, kbytes, mbytes, or gbytes (1000
base).
-z | --noheader
Do NOT display directory header lines.
-Z | --nototal
Do NOT display total or grand total lines.
-T | --total
Display only totals (no file information).
-2 | --two
Display filename twice. Implies -yf
-7 | --comment=comment
Add " # comment" to lines.
-8 | --host
Include host name with every line (useful with mpirun).
-9 | --grand_only
Display only grand totals.
-W | --tabsize cols
Assume that each tabstop is cols columns wide.
The default is 8. This option was -T for GNU.
-y | --fields fields
Display specific fields specified by character:
+ add fields (include base)
- reset fields as none
zH directory headers
D device
i inode
M type and mode
t type
m mode
l link count
o owner
g group
K size in K|M|G format (1024)
k size in k|m|g format (1000)
s size in bytes
b size in blocks
r sum -r file
Ed modify date/time
ua usage/access time
c change time
f filename (default)
ZT directory totals
*A all fields (except sum)
Unlike the default display, directory headers and totals are off by default
and the z and Z options re-enable. All will include device information
(hex).
--color[=WHEN]
Colorize the output; WHEN can be 'always' (default), 'auto', or 'never'.
Using color to distinguish file types is disabled by default or with
--color=never. With --color=auto, uals emits color codes only when standard
output is connected to a terminal. The UALS_COLORS or LS_COLORS environment
variables can change the settings. Use the dircolors command to set either.
Note, some implementations add a shell alias for ls with --color=always.
That will not impact uals. However, 'uals -l' behaves as --color=auto.
-Y | --blocks
Display block count.
Blocks are typically defined as 512 bytes but may vary by platform.
For totals, only regular files are sumed even though blocks
are reported for directories.
--blksize size
Specify blocksize, can specify k, m, or g units (e.g., 1m).
Some filesystems (e.g., Lustre) use bogus block calculation.
If blksize is specified, blocks will be calculated and only
regular files will be reported (all else is inodes).
-* | --verbose
Display almost all available information.
Includes inode (-i), link, modify date, access date,
change date, and file size as bytes.
To display device use --device.
To display sum -r use --sum.
--mount | --xdev
Implies -R but will not walk mount points. Applies only to first file sys-
tem encountered.
--device
Display device (hex).
--input
Read filenames from stdin. No filtering of input is done.
--list Do -d listing of all directories in specfied files.
--sum
Include "sum -r" of file (BSD 4.3 algorithm).
Only sums regular files.
Unreadable files displayed as -1.
--maximum length
Specify userid,group floating field length. Default length is 8 characters
or longer as necessary.
--length length
Specify userid,group fixed field length. Default is floating.
--cray
For Cray specific information (acid and count).
--acid | -@
For Cray acid.
--count
For Cray reference count.
The following options can be used to filter files. By default multiple specifica-
tions are anded. They are intended to provide file filtering similar to what can
be done with find. At this time, only the file|path|directory options use pattern
matching. The time options for new*|old* use either known file attributes or a
delta from the current time (e.g, an absolute date|time is not presently sup-
ported). These features can be changed|enhanced as needs are identified.
--type=types
Display files of specified type(s).
Either f or - may be used for a regular files.
If ACLs are supported use "a" for files with ACLs.
--t_ne=types
Display files not matching specified type(s).
--s_lt=SIZE
Display files less than specified size.
Use 1k for files less than 1000 bytes
Use 1K for files less than 1024 bytes.
Use m|M for mega, g|G for giga, t|T for tera bytes.
--s_gt=SIZE | --size=SIZE
Display files greater than specified size.
--newer=file|time | --new_m=file|time
Display files newer (modification) than specified file or time offset from
current time. Time specification defaults to hours.
Use 30s for 30 seconds
Use 30m for 30 minutes.
Use 10h for 10 hours.
Use 1d for 1 day.
Use 1w for 1 week.
Use 1y for 1 year.
--stale=file|time
Display files older (modification and access) than specified file or time
and symlinks older (modification) which are stale or referenced file older
(access) than specified.
--older=file|time | --old_m=file|time
Display files older (modification) than specified file or time.
--new_c=file|time
Display files newer (change) than specified file or time.
--old_c=file|time
Display files older (change) than specified file or time.
--new_u=file|time
Display files newer (usage|access) than specified file or time.
--old_u=file|time
Display files older (usage|access) than specified file or time.
--name=pattern
Display files with name matching pattern.
--n_ne=pattern
Display files with name not matching pattern.
Unlike --ignore this option is used with other filter options.
--path=pattern
Display path/file with name matching pattern.
--p_ne=pattern
Display path/file with name not matching pattern.
--d_eq=pattern
Walk only directories matching specified pattern.
--d_ne=pattern
Walk only directories not matching specified pattern.
--inum=value
Match specified inode value.
Typically used with --recursive and --mount.
Implies both inode and link fields.
--link_gt=value
Match files with more than specified links.
Typically specfied as --link_gt=1 and used
with --recursive and --mount.
Implies both inode and link fields.
The following options filter by file access (permission) attributes and honor the
--or option.
--group=group
Display files belonging to the group.
Either the name or numeric gid can be specified.
--g_ne=group
Display files not belonging to the group or gid.
--g_gt=gid
Display files with gid|group greater than specified.
--g_lt=gid
Display files with gid|group less than specified.
--nogroup
Display files not belonging to any group.
--user=user
Display files belonging to the user.
Either the name or numeric uid can be specified.
--u_ne=user
Display files not belonging to the uid or userid.
--u_gt=uid
Display files with uid|userid greater than specified.
--u_lt=uid
Display files with uid|userid less than specified.
--nouser
Display files not belonging to any user.
--mode=mask
Display files with mode matching specified mask.
Note, symlinks are ignored (typically 777).
--m_ne=mask
Display files with mode not matching specified mask.
--acl
Display files with an ACL (ignores symlinks).
--or
"or" (vs. "and") file access filtering options.
--show_filter
Display filtering options (primarily a debugging option).
Basic (GNU) Options
-a | --all
List all files, including all files starting with ".".
-b | --escape
Quote nongraphic characters in file names using alphabetic and octal back-
slash sequences like those used in C.
-c | --time=ctime | --time=status | --time=change
Sort directory contents according to the file status change time instead of
the modification time. If the long listing format is being used, print the
status change time instead of the modification time.
-d | --directory
List directories like other files, rather than listing their contents.
-f Do not sort directory contents; list them in whatever order they are stored
on the disk. The same as enabling -a and -U and disabling -l, -s, and -t.
--full-time
List times in full, rather than using the standard abbreviation heuristics.
-h | --help | --?
Print a usage message on standard output and exit successfully.
-i | --inode
Print the index number of each file to the left of the file name.
-k | --kilobytes
Display file sizes in in kilobytes, megabytes, gigabytes (base 1000).
-K | --KILOBYTES
Display file sizes in in Kilobytes, Megabytes, gigabytes (base 1024).
-l | --format=long | --format=verbose
In addition to the name of each file, print the file type, permissions, num-
ber of hard links, owner name, group name, size in bytes, and timestamp (the
modification time unless other times are selected). For files with a time
that is more than 6 months old or more than 1 hour into the future, the
timestamp contains the year instead of the time of day. Note -l also estab-
lishes --color=auto.
-m | --format=commas
List files horizontally, with as many as will fit on each line, separated by
commas.
-n | --numeric-uid-gid
List the numeric UID and GID instead of the names.
--alpha-uid-gid
Default to list userid and group, use with -n for both alpha and numeric
forms.
--both-uid-gid
Same as --alpha-uid-gid --numeric-uid-gid combined.
-p Append a character to each file name indicating the file type.
-q | --hide-control-chars
Print question marks instead of nongraphic characters in file names.
-q | --mark-special-chars
Print question marks for all non-alphanumeric characters except ".-_".
-r | --reverse
Sort directory contents in reverse order.
-t | --sort=time
Sort directory contents by timestamp instead of alphabetically, with the
newest files listed first.
-u | --time=atime | --time=access | --time=use
Sort directory contents according to the file last access time instead of
the modification time. If the long listing format is being used, print the
last access time instead of the modification time.
-x | --format=across | --format=horizontal
List the files in columns, sorted horizontally.
-A | --almost-all
List all files in directories, except for "." and "..".
-B | --ignore-backups
Do not list files that end with "~", unless they are given on the command
line.
-C | --columns | --format=vertical
List files in columns, sorted vertically.
-F | --classify
Append a character to each file name indicating the file type. For regular
files that are executable, append a "*". The file type indicators are "/"
for directories, "@" for symbolic links, "|" for FIFOs, `=" for sockets, and
nothing for regular files.
-G | --no-group
Inhibit display of group information in long format directory list.
-L | --dereference
List the files linked to by symbolic links instead of listing the contents
of the links.
-N | --literal
Do not quote file names.
-Q | --quote-name
Enclose file names in double quotes and quote nongraphic characters as in C.
-R | --recursive
List the contents of all directories recursively.
-S | --sort=size
Sort directory contents by file size instead of alphabetically, with the
largest files listed first.
-U | --sort=none
Do not sort directory contents; list them in whatever order they are stored
on the disk. This option is not called -f because the Unix ls -f option
also enables -a and disables -l, -s, and -t. It seems useless and ugly to
group those unrelated things together in one option. Since this option does
not do that, it has a different name.
-V | --version
Print version information on standard output then exit successfully.
-X | --sort=extension
Sort directory contents alphabetically by file extension (characters after
the last "."); files with no extension are sorted first.
-0 | --quiet
Do not print "No such" messages and exit 0.
-1 | --format=single-column
List one file per line.
-w | --width cols
Assume the screen is cols columns wide. The default is taken from the ter-
minal driver if possible; otherwise the environment variable COLUMNS is used
if it is set; otherwise the default is 80.
-I | --ignore pattern
Do not list files whose names match the shell pattern pattern unless they
are given on the command line. As in the shell, an initial "." in a file-
name does not match a wildcard at the start of pattern.
DISPLAY
File Mode Designations
d for directory
c for character special
b for block special
m for multiplex
l for symbolic link
s for socket
p for fifo
- for regular
r for Cray checkpoint/restart
i for Cray DMF migrated
o for Cray offline, data
n for Cray offline, no-data
? for any other file type
EXAMPLES
Basic command:
snkac@java: uals
- 0640 snkac users 18k 910602.1203 COPYING
- 0640 snkac users 919 971005.0959 ChangeLog
- 0640 snkac users 2106 971005.1102 Makefile
- 0640 snkac users 4607 941027.2049 README.fileutils
- 0640 snkac users 469 971005.1050 config.h
- 0640 snkac users 6601 971005.0952 config.h.cray
- 0640 snkac users 8737 971004.1921 config.h.cray.org
- 0640 snkac users 6592 971004.1908 config.h.du
- 0640 snkac users 8746 971004.0946 config.h.du.org
- 0640 snkac users 8287 941101.0515 config.h.in
- 0640 snkac users 6598 971011.0851 config.h.irix
- 0640 snkac users 8785 971004.1906 config.h.irix.org
d 0751 snkac users 8192 971026.0820 lib
d 0751 snkac users 8192 971026.0829 man
d 0751 snkac users 8192 971026.0820 src
Totals only and totals recursively:
snkac@java: uals -T
Total: 15 files 109k size, for: .
snkac@java: uals -TR
Total: 15 files 109k size, for: .
Total: 20 files 106k size, for: lib
Total: 5 files 24k size, for: man
Total: 9 files 100k size, for: src
Total: 8 files 41k size, for: src/libx
Total: 7 files 71k size, for: src/org
Grand: 64 files 451k size
Limiting display to mode, modify date, and access date with a custom date-time for-
mat:
snkac@java: uals -e '%y/%m/%d %H:%M:%S' -EuM src/u*
- 0640 97/10/05 14:03:43 a97/10/26 08:22:32 src/uadf.c
- 0640 97/10/26 07:40:46 a97/10/26 08:22:31 src/uals.c
- 0640 97/10/11 08:53:59 a97/10/26 08:22:31 src/uals.h
Total: 3 files 72k size, for: .
Full display (include inode, links, access time, and change time):
snkac@java: uals -* src/uals.c
6343 - 0640 1 snkac users 55790 19971026.074046 a19971026.082231
c19971026.074046 src/uals.c
No headers and no totals, note a list of files including complete relative path is
generated:
snkac@java: uals -Zz */u*
- 0640 snkac users 12k 971026.0836 man/uals.1
- 0640 snkac users 14k 971005.1403 src/uadf.c
- 0640 snkac users 54k 971026.0740 src/uals.c
- 0640 snkac users 1097 971011.0853 src/uals.h
All C source files newer than two weeks:
kcarlson@iceberg1: uals -RzZ --newer 2w --name "*.c"
- 0600 kcarlson staff 6584 050321.1059 lib/filemode.c
- 0600 kcarlson staff 70k 050321.1455 uals/uals.c
- 0600 kcarlson staff 5816 050321.1408 uals/uals_usage.c
All files newer than one day:
ftp1: uals --newer 1d -R -y M
d 0755 doc
d 0755 man
- 0644 uals-v4.24.tar.gz
l 0777 uals.tgz -> uals-v4.24.tar.gz
- 0644 doc/ChangeLog_uals.txt
- 0644 doc/Version_uals.txt
- 0644 man/uals.html
- 0644 man/uals.txt
All files >1.5gb:
kcarlson@iceberg1: uals/uals --size 1.5g /gpfsa/mksysb
- 0640 root ibmman 8.4g 050308.1827 csm.20050308
- 0640 kcarlson ibmman 1.6g 050308.1639 b1n1.20050308
- 0640 kcarlson ibmman 1.6g 050308.1640 b1n2.20050308
Total: 3 files 11.5g size, for: /gpfsa/mksysb
All world-writable, unowned, acl present, or sguid files in the specified directory
(recursively):
b1n2: uals -R --or --acl --nouser --mode 7002 -y tmog .
d 0751+ kcarlson staff tdir.acl
- 0754+ kcarlson staff test.acl
- 6711 kcarlson staff Test/binX
d 1777 kcarlson staff Test/write
- 0666 kctester tstaccts Test/write/file
- 0600 1000 1000 Test/write/nowner
NOTES
Use "export UALS_OPT=options" to establish persistent options.
uals has been tested under Digital|Compaq Tru64 v3.2g and v4.0b, SGI IRIX 6.2
through 6.5, Cray Unicos 9.0 and 10.0, Unicos-mk 2.0, Cray Unicos/MP 2.1, Cray CLE
2.1, AIX 4.3 through 5.3, and NEC SUPER-UX 12.1; uals has also been tested under
Solaris, several Linux distributions (RH5 through RH8 and SLED11), Mac OSX, and
cygwin (Windows). Suggestions for enhancements or bug reports can be directed to
denalisun907@gmail.com.
uals -OPsl is functionally equivalent to ls -l.
uals -x is functionally equivalent to ls.
uals allows better control of display which is useful for piping results into other
commands. The date-time format is consistantly displayed and can be easily changed
with either the -e | --lc_time format option or by the LC_TIME environment vari-
able.
The totalling options provide an alternative to the du command. Bear in mind that
uals reports in K-bytes while the units from du depends on system block size, typi-
cally 512 bytes, with some systems 4096 or 8192 bytes. The total used may not
reflect file quota blocks used due to system implementations which may or may not
recognize partial block usage.
Size for megabytes is really 1000 * k-bytes not 1024 * k-bytes. Sizes are dis-
played with k, m, or g to indicate unit base 1000. Sizes are displayed with K, M,
or G to indicate unit base 1024.
Device minor numbers are displayed with leading 0s to avoid extra white-space sepa-
rated fields. The leading 0 does NOT indicate octal value.
The GNU parser allows long options specified as --option.
Nominal support for access control lists was added in v2.1. As of v4.0 if acl sup-
port has been compiled in an additional space will appear after mode bits. If the
file has an acl that space will be instead be displayed as a +. You must use the
operating system display command to see acl contents, such as:
Tru64 getacl | setacl
IRIX ls -lD | chacl
UNICOS spget | spset
AIX aclget | acledit
Linux getfacl | setfacl
SunOS getfacl | setfacl
Linux getfacl | setfacl
Exit status:
0 if OK or only minor problems and --quiet,
1 if minor problems (e.g., cannot access file or directory),
2 if serious trouble (e.g., cannot access command-line argument).
ACKNOWLEDGEMENTS
Based on GNU fileutils-3.12 version of ls from Free Software Foundation, Inc.
Revised at the University of Alaska.
RELATED INFORMATION
Commands: ls(1), du(1), find(1).
ACLs: spget(1) Unicos[/mk], chacl(1) IRIX, aclget(1) AIX, getfacl(1) Linux,
getacl(1) Tru64.