stat: implement -t (terse mode)
mostly compatible with coreutils and busybox. file mode is intentionally not compatible though. Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
This commit is contained in:
parent
139522b45e
commit
bbf3b5ac85
20
stat.c
20
stat.c
@ -12,11 +12,12 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
static void show_stat(const char *file, struct stat *st);
|
static void show_stat(const char *file, struct stat *st);
|
||||||
|
static void show_stat_terse(const char *file, struct stat *st);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
eprintf("usage: %s [-L] [file...]\n", argv0);
|
eprintf("usage: %s [-L] [-t] [file...]\n", argv0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -33,6 +34,9 @@ main(int argc, char *argv[])
|
|||||||
fn = stat;
|
fn = stat;
|
||||||
fnname = "stat";
|
fnname = "stat";
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
showstat = show_stat_terse;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage();
|
||||||
} ARGEND;
|
} ARGEND;
|
||||||
@ -56,6 +60,20 @@ main(int argc, char *argv[])
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
show_stat_terse(const char *file, struct stat *st)
|
||||||
|
{
|
||||||
|
printf("%s ", file);
|
||||||
|
printf("%lu %lu ", (unsigned long)st->st_size,
|
||||||
|
(unsigned long)st->st_blocks);
|
||||||
|
printf("%04o %u %u ", st->st_mode & 0777, st->st_uid, st->st_gid);
|
||||||
|
printf("%llx ", (unsigned long long)st->st_dev);
|
||||||
|
printf("%lu %lu ", (unsigned long)st->st_ino, (unsigned long)st->st_nlink);
|
||||||
|
printf("%d %d ", major(st->st_rdev), minor(st->st_rdev));
|
||||||
|
printf("%ld %ld %ld ", st->st_atime, st->st_mtime, st->st_ctime);
|
||||||
|
printf("%lu\n", (unsigned long)st->st_blksize);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
show_stat(const char *file, struct stat *st)
|
show_stat(const char *file, struct stat *st)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user