Add -k support for du(1)

This setting overrides the BLOCKSIZE environment variable.
This commit is contained in:
sin 2013-10-16 18:00:02 +01:00
parent 6e8b79ebd8
commit ac3a5e0091
2 changed files with 11 additions and 0 deletions

4
du.1
View File

@ -19,3 +19,7 @@ Display an entry for each file in the file hierarchy.
.TP .TP
.BI \-s .BI \-s
Display only the grand total for the specified files. Display only the grand total for the specified files.
.TP
.BI \-k
By default all sizes are reported in 512-byte block counts.
The -k option causes the numbers to be reported in kilobyte counts.

7
du.c
View File

@ -15,6 +15,7 @@ static long blksize = 512;
static bool aflag = false; static bool aflag = false;
static bool sflag = false; static bool sflag = false;
static bool kflag = false;
static long du(const char *); static long du(const char *);
static void print(long n, char *path); static void print(long n, char *path);
@ -38,6 +39,9 @@ main(int argc, char *argv[])
case 's': case 's':
sflag = true; sflag = true;
break; break;
case 'k':
kflag = true;
break;
default: default:
usage(); usage();
} ARGEND; } ARGEND;
@ -46,6 +50,9 @@ main(int argc, char *argv[])
if (bsize) if (bsize)
blksize = estrtol(bsize, 0); blksize = estrtol(bsize, 0);
if (kflag)
blksize = 1024;
if (argc < 1) { if (argc < 1) {
n = du("."); n = du(".");
if (sflag) if (sflag)