svn commit: r229756 - stable/7/usr.bin/du
Glen Barber
gjb at FreeBSD.org
Sat Jan 7 01:39:39 UTC 2012
Author: gjb (doc committer)
Date: Sat Jan 7 01:39:38 2012
New Revision: 229756
URL: http://svn.freebsd.org/changeset/base/229756
Log:
MFC r209362, r210933, r228356:
r209362 (brian) [1]:
- Add a -t switch for masking output that's above or below certain
thresholds. This switch makes it a lot easier to locate problem
areas when a process is threatening to consume all of your disk
space.
r210933 (joel):
- Fix typos and spelling mistakes.
r228356 [2]:
- Update du(1):
- Sort arguments alphabetically where appropriate
- '-B blocksize' is not mutually exclusive of '-h|-k|-m'
- Mention '-t' in synopsis
- Other wording improvements
- Update usage() output to reflect the new synopsis
- Other miscellaneous improvements
Approved by: brian [1]
PR: 162438 [2]
Modified:
stable/7/usr.bin/du/du.1
stable/7/usr.bin/du/du.c
Directory Properties:
stable/7/usr.bin/du/ (props changed)
Modified: stable/7/usr.bin/du/du.1
==============================================================================
--- stable/7/usr.bin/du/du.1 Sat Jan 7 01:12:21 2012 (r229755)
+++ stable/7/usr.bin/du/du.1 Sat Jan 7 01:39:38 2012 (r229756)
@@ -32,7 +32,7 @@
.\" @(#)du.1 8.2 (Berkeley) 4/1/94
.\" $FreeBSD$
.\"
-.Dd November 6, 2008
+.Dd December 8, 2011
.Dt DU 1
.Os
.Sh NAME
@@ -40,15 +40,13 @@
.Nd display disk usage statistics
.Sh SYNOPSIS
.Nm
-.Op Fl A
+.Op Fl Aclnx
.Op Fl H | L | P
+.Op Fl h | k | m
.Op Fl a | s | d Ar depth
-.Op Fl c
-.Op Fl l
-.Op Fl h | k | m | B Ar blocksize
-.Op Fl n
-.Op Fl x
+.Op Fl B Ar blocksize
.Op Fl I Ar mask
+.Op Fl t Ar threshold
.Op Ar
.Sh DESCRIPTION
The
@@ -69,10 +67,12 @@ Calculate block counts in
.Ar blocksize
byte blocks.
This is different from the
-.Fl k, m
+.Fl h, k
+and
+.Fl m
options or setting
.Ev BLOCKSIZE
-and gives an estimate of how much space the examined file hierachy would
+and gives an estimate of how much space the examined file hierarchy would
require on a filesystem with the given
.Ar blocksize .
Unless in
@@ -83,40 +83,31 @@ is rounded up to the next multiple of 51
.It Fl H
Symbolic links on the command line are followed, symbolic links in file
hierarchies are not followed.
-.It Fl L
-Symbolic links on the command line and in file hierarchies are followed.
.It Fl I Ar mask
Ignore files and directories matching the specified
.Ar mask .
+.It Fl L
+Symbolic links on the command line and in file hierarchies are followed.
.It Fl P
No symbolic links are followed.
This is the default.
.It Fl a
Display an entry for each file in a file hierarchy.
-.It Fl h
-"Human-readable" output.
-Use unit suffixes: Byte, Kilobyte, Megabyte,
-Gigabyte, Terabyte and Petabyte.
-.It Fl r
-Generate messages about directories that cannot be read, files
-that cannot be opened, and so on.
-This is the default case.
-This option exists solely for conformance with
-.St -xpg4 .
-.It Fl s
-Display an entry for each specified file.
-(Equivalent to
-.Fl d Li 0 )
+.It Fl c
+Display a grand total.
.It Fl d Ar depth
Display an entry for all files and directories
.Ar depth
directories deep.
-.It Fl c
-Display a grand total.
+.It Fl h
+.Dq Human-readable
+output.
+Use unit suffixes: Byte, Kilobyte, Megabyte,
+Gigabyte, Terabyte and Petabyte.
.It Fl k
Display block counts in 1024-byte (1-Kbyte) blocks.
.It Fl l
-If a file has multiple hard links, count its size many times.
+If a file has multiple hard links, count its size multiple times.
The default behavior of
.Nm
is to count files with multiple hard links only once.
@@ -132,6 +123,24 @@ Ignore files and directories with user
flag
.Pq Dv UF_NODUMP
set.
+.It Fl r
+Generate messages about directories that cannot be read, files
+that cannot be opened, and so on.
+This is the default case.
+This option exists solely for conformance with
+.St -xpg4 .
+.It Fl s
+Display an entry for each specified file.
+(Equivalent to
+.Fl d Li 0 )
+.It Fl t Ar threshold
+Display only entries for which size exceeds
+.Ar threshold .
+If
+.Ar threshold
+is negative, display only entries for which size is less than the absolute
+value of
+.Ar threshold .
.It Fl x
File system mount points are not traversed.
.El
@@ -148,25 +157,32 @@ If either the
.Fl H
or
.Fl L
-options are specified, storage used by any symbolic links which are
-followed is not counted or displayed.
+option is specified, storage used by any symbolic links which are
+followed is not counted (or displayed).
+.Pp
+The
+.Fl h, k
+and
+.Fl m
+options all override each other; the last one specified determines
+the block counts used.
.Sh ENVIRONMENT
.Bl -tag -width BLOCKSIZE
.It Ev BLOCKSIZE
If the environment variable
.Ev BLOCKSIZE
is set, and the
-.Fl k, m
+.Fl h, k
or
-.Fl h
+.Fl m
options are not specified, the block counts will be displayed in units of
that block size.
If
.Ev BLOCKSIZE
is not set, and the
-.Fl k, m
+.Fl h, k
or
-.Fl h
+.Fl m
options are not specified, the block counts will be displayed in 512-byte
blocks.
.El
Modified: stable/7/usr.bin/du/du.c
==============================================================================
--- stable/7/usr.bin/du/du.c Sat Jan 7 01:12:21 2012 (r229755)
+++ stable/7/usr.bin/du/du.c Sat Jan 7 01:39:38 2012 (r229756)
@@ -88,6 +88,7 @@ main(int argc, char *argv[])
FTS *fts;
FTSENT *p;
off_t savednumber, curblocks;
+ off_t threshold, threshold_sign;
int ftsoptions;
int listall;
int depth;
@@ -104,12 +105,14 @@ main(int argc, char *argv[])
save = argv;
ftsoptions = 0;
savednumber = 0;
+ threshold = 0;
+ threshold_sign = 1;
cblocksize = DEV_BSIZE;
blocksize = 0;
depth = INT_MAX;
SLIST_INIT(&ignores);
- while ((ch = getopt(argc, argv, "AB:HI:LPasd:chklmnrx")) != -1)
+ while ((ch = getopt(argc, argv, "AB:HI:LPasd:chklmnrt:x")) != -1)
switch (ch) {
case 'A':
Aflag = 1;
@@ -177,6 +180,14 @@ main(int argc, char *argv[])
break;
case 'r': /* Compatibility. */
break;
+ case 't' :
+ if (expand_number(optarg, &threshold) != 0 ||
+ threshold == 0) {
+ warnx("invalid threshold: %s", optarg);
+ usage();
+ } else if (threshold < 0)
+ threshold_sign = -1;
+ break;
case 'x':
ftsoptions |= FTS_XDEV;
break;
@@ -246,6 +257,10 @@ main(int argc, char *argv[])
blocksize /= DEV_BSIZE;
}
+ if (threshold != 0)
+ threshold = howmany(threshold / DEV_BSIZE * cblocksize,
+ blocksize);
+
rval = 0;
if ((fts = fts_open(argv, ftsoptions, NULL)) == NULL)
@@ -267,7 +282,9 @@ main(int argc, char *argv[])
p->fts_parent->fts_bignum += p->fts_bignum +=
curblocks;
- if (p->fts_level <= depth) {
+ if (p->fts_level <= depth && threshold <=
+ threshold_sign * howmany(p->fts_bignum *
+ cblocksize, blocksize)) {
if (hflag) {
prthumanval(p->fts_bignum);
(void)printf("\t%s\n", p->fts_path);
@@ -486,9 +503,9 @@ static void
usage(void)
{
(void)fprintf(stderr,
- "usage: du [-A] [-H | -L | -P] [-a | -s | -d depth] [-c] "
- "[-l] [-h | -k | -m | -B bsize] [-n] [-x] [-I mask] "
- "[file ...]\n");
+ "usage: du [-Aclnx] [-H | -L | -P] [-h | -k | -m ] "
+ "[-a | -s | -d depth] [-B blocksize] [-I mask] "
+ "[-t threshold] [file ...]\n");
exit(EX_USAGE);
}
More information about the svn-src-stable-7
mailing list