From ac3a5e0091c74d9ae4e19d3dc8fac83a1b91caf0 Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 16 Oct 2013 18:00:02 +0100 Subject: [PATCH] Add -k support for du(1) This setting overrides the BLOCKSIZE environment variable. --- du.1 | 4 ++++ du.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/du.1 b/du.1 index 932e693..3320c8b 100644 --- a/du.1 +++ b/du.1 @@ -19,3 +19,7 @@ Display an entry for each file in the file hierarchy. .TP .BI \-s 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. diff --git a/du.c b/du.c index 3c6461b..4b3ebb0 100644 --- a/du.c +++ b/du.c @@ -15,6 +15,7 @@ static long blksize = 512; static bool aflag = false; static bool sflag = false; +static bool kflag = false; static long du(const char *); static void print(long n, char *path); @@ -38,6 +39,9 @@ main(int argc, char *argv[]) case 's': sflag = true; break; + case 'k': + kflag = true; + break; default: usage(); } ARGEND; @@ -46,6 +50,9 @@ main(int argc, char *argv[]) if (bsize) blksize = estrtol(bsize, 0); + if (kflag) + blksize = 1024; + if (argc < 1) { n = du("."); if (sflag)