This commit is contained in:
Your Name 2024-03-03 16:34:11 +03:00
parent 3fd33db451
commit ba33727ab3
40 changed files with 216 additions and 113 deletions

1
TODO
View File

@ -1,7 +1,6 @@
With "micro-" prefix
*Todo:
*du - b
tail
expr
uniq

View File

@ -8,7 +8,7 @@ int main(int argc, char **argv) {
int opt;
while ((opt = getopt(argc, argv, "")) != -1) {
fprintf(stderr, "basename [var1] [suffix]\n");
fprintf(stderr, "basename [text] [suffix]\n");
return 1;
}

View File

@ -33,11 +33,8 @@ int cat(const char *path) {
int main(int argc, char **argv) {
int opt;
while ((opt = getopt(argc, argv, "")) != -1) {
switch (opt) {
default:
printf("cat [file1 file2...]\n");
return 0;
}
printf("cat [file1 file2...]\n");
return 0;
}
argv += optind;

View File

@ -9,10 +9,10 @@
#include "get_stat.h"
#include "recurse.h"
unsigned int r_flag;
char r_flag;
char *f_flag = "chgrp";
unsigned int H_flag;
unsigned int v_flag;
char H_flag;
char v_flag;
int change(const char *path, void *p) {
struct group *grp = (struct group *)p;
@ -56,7 +56,7 @@ int main(int argc, char **argv) {
break;
default:
printf("chgrp [group] [file1 file2...]\n\t[-H Symbolic link]\n\t[-R Recursive] [-f Silent]\n\t[-v Verbose]\n");
printf("chgrp [RfHv] [group] [file1 file2...]\n\t-H Symbolic link\n\t-R Recursive\n\t-f Silent\n\t-v Verbose\n");
return 0;
}
}

View File

@ -9,10 +9,10 @@
#include "parse_mode.h"
#include "recurse.h"
unsigned int r_flag;
char r_flag;
char *f_flag = "chmod";
unsigned int H_flag;
unsigned int v_flag;
char H_flag;
char v_flag;
int change(const char *file, void *p) {
char *mode_arg = (char *)p;
@ -70,7 +70,7 @@ int main(int argc, char **argv) {
break;
default:
printf("chmod [ugoa]{+|-}[rwxXst] / [0 - 777] [file1 file2...]\n\t[-H Symbolic link]\n\t[-R Recursive] [-f Silent]\n\t[-v Verbose]\n");
printf("chmod [RfHv] [ugoa]{+|-}[rwxXst] / [0 - 777] [file1 file2...]\n\t-H Symbolic link\n\t-R Recursive\n\t-f Silent\n\t-v Verbose\n");
return 0;
}
}

View File

@ -11,10 +11,10 @@
#include "recurse.h"
#include "unused.h"
unsigned int r_flag;
char r_flag;
char *f_flag = "chown";
unsigned int H_flag;
unsigned int v_flag;
char H_flag;
char v_flag;
int (*chown_func)(const char *pathname, uid_t owner, gid_t group);
long gid;
long uid;
@ -38,8 +38,8 @@ int change(const char *path, void *p) {
void get_owner(const char *arg) {
char *group = strchr(arg, ':');
unsigned int g_flag = 1;
unsigned int u_flag = 1;
char g_flag = 1;
char u_flag = 1;
if (group == arg)
u_flag = 0;
@ -99,7 +99,7 @@ int main(int argc, char **argv) {
break;
default:
printf("chown USER[:[GRP]] [file1 file2...]\n\t[-H Symbolic link]\n\t[-R Recursive] [-f Silent]\n\t[-v Verbose]\n");
printf("chown [RfHf] USER[:[GRP]] [file1 file2...]\n\t-H Symbolic link\n\t-R Recursive\n\t-f Silent\n\t-v Verbose\n");
return 0;
}
}

View File

@ -3,7 +3,7 @@
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
unsigned int s_flag;
char s_flag;
int compare(FILE *fp1, FILE *fp2) {
if (fp1 == fp2)
@ -55,16 +55,16 @@ FILE *file_open(const char *path) {
}
int main(int argc, char **argv) {
int opt;
while ((opt = getopt(argc, argv, "fs")) != -1) {
while ((opt = getopt(argc, argv, "s")) != -1) {
switch (opt) {
case 's':
case 'f':
s_flag = 1;
break;
default:
printf("cmp file1 file2 [skip1] [skip2]\n\t[-f/-s Silent]\n");
printf("cmp [s] [file1] [file2] [skip1] [skip2]\n\t-s Silent\n");
return 0;
}
}

View File

@ -11,7 +11,7 @@
#include "get_stat.h"
char *f_flag = "cp";
unsigned int r_flag;
char r_flag;
int write_buffer(int mode, int ifd, int ofd, const char *dst) {
off_t len = lseek(ifd, 0, SEEK_END);
@ -173,7 +173,7 @@ int main(int argc, char **argv) {
break;
default:
printf("cp [src1 src2...] [dst]\n\t[-f Silent] [-r Recursive]\n");
printf("cp [rf] [src1 src2...] [dst]\n\t-f Silent\n\t-r Recursive\n");
return 0;
}
}

View File

@ -79,7 +79,7 @@ int main(int argc, char **argv) {
break;
default:
printf("date [+\"fmt\"]\n\t[-s DATE Set new date]\n\t[-d DATE Print new date]\n\t[-u Work in UTC]\n\t[-r FILE Display last modification time of FILE]\n");
printf("date [rsdu] [+\"fmt\"]\n\t-s DATE Set new date\n\t-d DATE Print new date\n\t-u Work in UTC\n\t-r FILE Display last modification time of FILE\n");
printf("\nFormats:\n");
for (size_t i = 0; i < sizeof(fmts) / sizeof(char *); i++)
printf("\t%s\n", fmts[i]);

View File

@ -108,7 +108,7 @@ int main(int argc, char **argv) {
char *val = strchr(arg, '=');
if (val == NULL) {
printf("dd\n\t[if=InputFile] [of=OutputFile]\n\t[bs=obs and obs]\n\t[ibs=Input buffer size]\n\t[obs=Output buffer size]\n\t[seek=Skip N obs-sized output blocks]\n\t[skip=Skip N ibs-sized output blocks]\n\t[count=Copy only N input blocks]\n\nN and BYTES may be followed by the following multiplicative\nsuffixes: w=2, b=512, k=1000, K=1024, m=1000*1000,\nM=1024*1024, g=1000*1000*1000, G=1024*1024*1024\n");
printf("dd\n\tif=InputFile\n\tof=OutputFile\n\tbs=obs and obs\n\tibs=Input buffer size\n\tobs=Output buffer size\n\tseek=Skip N obs-sized output blocks\n\tskip=Skip N ibs-sized output blocks\n\tcount=Copy only N input blocks\n\nN and BYTES may be followed by the following multiplicative\nsuffixes: w=2, b=512, k=1000, K=1024, m=1000*1000,\nM=1024*1024, g=1000*1000*1000, G=1024*1024*1024\n");
return 1;
}

View File

@ -9,8 +9,8 @@
#include "human.h"
#include "config.h"
unsigned int a_flag;
unsigned int h_flag;
char a_flag;
char h_flag;
off_t block = 1024;
void print_human(const char *src, const off_t total, const off_t used, const off_t avail, const off_t capacity, const char *dst) {
@ -44,7 +44,7 @@ int main(int argc, char **argv) {
break;
default:
printf("df\n\t[-h Human readable (1024)] [-a Show all]\n\t[-H Human readable (1000)]\n");
printf("df [rHa]\n\t-h Human readable (1024)\n\t-a Show all\n\t-H Human readable (1000)\n");
return 0;
}
}

View File

@ -9,10 +9,9 @@
#include "make_path.h"
#include "human.h"
unsigned int h_flag;
unsigned int s_flag;
unsigned int c_flag;
unsigned int b_flag;
char h_flag;
char s_flag;
char c_flag;
off_t total;
void print(off_t size, const char *filename) {
@ -66,7 +65,6 @@ off_t du(const char *path, int recurs_flag) {
/* Get file size */
else {
sum = sb.st_blocks * 512;
if (c_flag)
total += sum;
@ -80,7 +78,7 @@ off_t du(const char *path, int recurs_flag) {
int main(int argc, char **argv) {
int opt;
while ((opt = getopt(argc, argv, "hsbc")) != -1) {
while ((opt = getopt(argc, argv, "hsc")) != -1) {
switch (opt) {
case 'h':
h_flag = 1;
@ -95,7 +93,7 @@ int main(int argc, char **argv) {
break;
default:
printf("du [src1 src2...]\n\t[-h Sizes in human readable format]\n\t[-s Display only a total for each argument]\n\t[-c produce a grand total]\n");
printf("du [hsc] [src1 src2...]\n\t-h Sizes in human readable format\n\t-s Display only a total for each argument\n\t-c produce a grand total\n");
return 0;
}
}

View File

@ -6,8 +6,8 @@
#include <stdlib.h>
#include "config.h"
unsigned int v_flag;
unsigned int c_flag;
char v_flag;
char c_flag;
long parse_long(const char *str) {
char *ptr;
@ -60,7 +60,7 @@ int main(int argc, char **argv) {
break;
default:
printf("head [file1 file2...]\n\t[-n Print N lines] [-c Print N bytes]\n\t[-v Print headers]\n");
printf("head [ncv] [file1 file2...]\n\t-n Print N lines\n\t-c Print N bytes\n\t-v Print headers\n");
return 0;
}
}

View File

@ -9,11 +9,11 @@
#include <limits.h>
#include <sys/types.h>
unsigned int g_flag;
unsigned int G_flag;
unsigned int n_flag;
unsigned int r_flag;
unsigned int u_flag;
char g_flag;
char G_flag;
char n_flag;
char r_flag;
char u_flag;
int print_groups(const struct passwd *pwd, const char *fmt, const int flag) {
int ngroups = 0;
@ -77,7 +77,7 @@ int def_ids(uid_t uid, struct passwd *pwd) {
}
void usage(int sig) {
printf("id [user]\n\t[-u User ID] [-g Group ID]\n\t[-G Supplementary group IDs]\n\t[-n Print names instead of numbers]\n\t[-r Print real ID instead of effective ID]\n");
printf("id [gGurn] [user]\n\t-u User ID\n\t-g Group ID\n\t-G Supplementary group IDs\n\t-n Print names instead of numbers\n\t-r Print real ID instead of effective ID\n");
exit(sig);
}

View File

@ -4,9 +4,8 @@
#include <unistd.h>
#include "make_path.h"
/* Symbolic */
unsigned int s_flag;
unsigned int f_flag;
char s_flag;
char f_flag;
int ln(const char *src, const char *dst) {
if (f_flag)
@ -32,7 +31,7 @@ int main(int argc, char **argv) {
break;
default:
printf("ln [src] [dst]\n\t[-f Force] [-s Symbolic]\n");
printf("ln [sf] [src] [dst]\n\t-f Force\n\t-s Symbolic\n");
return 0;
}
}

View File

@ -16,18 +16,18 @@
#include "config.h"
#include "human.h"
unsigned int O_flag;
unsigned int a_flag;
unsigned int l_flag;
unsigned int F_flag;
unsigned int c_flag;
unsigned int R_flag;
unsigned int d_flag;
unsigned int L_flag;
unsigned int h_flag;
unsigned int s_flag;
unsigned int i_flag;
unsigned int p_flag;
char O_flag;
char a_flag;
char l_flag;
char F_flag;
char c_flag;
char R_flag;
char d_flag;
char L_flag;
char h_flag;
char s_flag;
char i_flag;
char p_flag;
int sortd(const void *p1, const void *p2);
int (*sorter)(const void *p1, const void *p2) = sortd;
@ -412,7 +412,7 @@ int main(int argc, char **argv) {
break;
default:
printf("ls [dir1 dir2...]\n\t[-a Show hidden files]\n\t[-l Use a long listing format]\n\t[-F Append indicator to names]\n\t[-c Color mode] [-R Recursive]\n\t[-1 One column] [-d Print only dir names]\n\t[-L Follow symlinks]\n\t[-h Sizes in human readable format]\n\t[-i Listen inodes] [-t Sort by mtime]\n\t[-S Sort by size] [-s Print file size]\n");
printf("ls [1alFcRdLhistS] [dir1 file2...]\n\t-a Show hidden files\n\t-l Use a long listing format\n\t-F Append indicator to names\n\t-c Color mode\n\t-R Recursive\n\t-1 One column\n\t-d Print only dir names\n\t-L Follow symlinks\n\t-h Sizes in human readable format\n\t-i Listen inodes\n\t-t Sort by mtime\n\t-S Sort by size\n\t-s Print file size\n");
return 0;
}
}

View File

@ -7,8 +7,8 @@
#include <errno.h>
#include "parse_mode.h"
unsigned int v_flag;
unsigned int p_flag;
char v_flag;
char p_flag;
mode_t mode = 0777;
int do_mkdir(const char *path) {
@ -21,7 +21,7 @@ int do_mkdir(const char *path) {
}
else if (v_flag)
printf("mkdir: %s created with mode: %d\n", path, mode);
printf("mkdir: %s created with mode %d\n", path, mode);
return 0;
}
@ -61,7 +61,7 @@ int main(int argc, char **argv) {
break;
default:
printf("mkdir [dst1 dst2...]\n\t[-p Make parent dir] [-m MODE Mode]\n");
printf("mkdir [pmv] [dst1 dst2...]\n\t-p Make parent dir\n\t-m MODE Mode\n\t-v Verbose\n");
return 0;
}
}

View File

@ -33,7 +33,7 @@ int main(int argc, char **argv) {
break;
default:
printf("mkfifo [file1 file2...]\n\t[-m Mode]\n");
printf("mkfifo [m] [file1 file2...]\n\t-m MODE\n");
return 0;
}
}

View File

@ -38,7 +38,7 @@ int main(int argc, char **argv) {
break;
default:
printf("mknod [-m MODE] [NAME] [TYPE] [MAJOR MINOR]\n");
printf("mknod [m] [NAME] [TYPE] [MAJOR MINOR]\n\t-m MODE\n\n");
printf("Types:\n\tb - block device\n\tc or u - character device\n\tp - named pipe/fifo (MAJOR MINOR must be omitted)\n\ts - socket\n");
return 0;
}

View File

@ -60,7 +60,7 @@ int main(int argc, char **argv) {
break;
default:
printf("mktemp [file]\n\t[-d Dir] [-p Base dir]\n");
printf("mktemp [dp] [file]\n\t-d Dir\n\t-p Base dir\n");
return 0;
}
}

View File

@ -38,7 +38,7 @@ int main(int argc, char **argv) {
break;
default:
printf("mv [src1 src2...] [dst]\n\t[-f Force]\n");
printf("mv [f] [src1 src2...] [dst]\n\t-f Force\n");
return 0;
}
}

View File

@ -17,7 +17,7 @@ int main(int argc, char **argv) {
break;
default:
printf("nice [cmd] [arg1] [arg2]\n\t[-n N Add N to the niceness]\n");
printf("nice [n] [cmd] [arg1] [arg2]\n\t-n N Add N to the niceness\n");
return 0;
}
}

View File

@ -6,8 +6,8 @@
#include <unistd.h>
#include "config.h"
unsigned int w_flag = 4;
unsigned int lines = 1;
char w_flag = 4;
char lines = 1;
int nl(const char *path) {
FILE *fp = stdin;
@ -52,7 +52,7 @@ int main(int argc, char **argv) {
break;
default:
printf("nl [file1 file2...]\n\t[-w N Width of line numbers]\n\t[-v N Start from N]\n");
printf("nl [wv] [file1 file2...]\n\t-w N Width of line numbers\n\t-v N Start from N\n");
return 0;
}
}

View File

@ -41,7 +41,7 @@ int main(int argc, char **argv) {
break;
default:
printf("renice [id1 id2...]\n\t[-n N Add N to the niceness]\n\t[-g Process group ids]\n\t[-u Process user names]\n\t[-p Process ids]\n");
printf("renice [ngup] [id1 id2...]\n\t-n N Add N to the niceness\n\t-g Process group ids\n\t-u Process user names\n\t-p Process ids\n");
return 0;
}
}

View File

@ -10,7 +10,7 @@
#include "unused.h"
char *f_flag = "rm";
unsigned int r_flag;
char r_flag;
int rm(const char *path, void *p) {
UNUSED(p);
@ -49,7 +49,7 @@ int main(int argc, char **argv) {
break;
default:
printf("rm [file1 file2...]\n\t[-f Force] [-r Recursive]\n");
printf("rm [rf] [file1 file2...]\n\t-f Force\n\t-r Recursive\n");
return 0;
}
}

View File

@ -8,10 +8,10 @@
#include <sys/stat.h>
#include "config.h"
unsigned int f_flag;
unsigned int u_flag;
unsigned int z_flag;
unsigned int n_loops = 3;
char f_flag;
char u_flag;
char z_flag;
int n_loops = 3;
int shred(int rand_fd, int fd) {
/* Get size */
@ -25,7 +25,7 @@ int shred(int rand_fd, int fd) {
return 1;
}
for (unsigned int n = 0; n < n_loops; n++) {
for (char n = 0; n < n_loops; n++) {
if (read(rand_fd, buf, size) == 0)
fprintf(stderr, "shred: %s", strerror(errno));
@ -65,7 +65,7 @@ int main(int argc, char **argv) {
break;
default:
printf("shred [file1 file2...]\n\t[-n N Overwrite N times, default 3]\n\t[-z Final overwrite with zeros]\n\t[-u Remove file] [-f Chmod to ensure writability]\n");
printf("shred [fuzn] [file1 file2...]\n\t-n N Overwrite N times, default 3\n\t-z Final overwrite with zeros\n\t-u Remove file\n\t-f Chmod to ensure writability\n");
return 0;
}
}

View File

@ -68,7 +68,7 @@ int main(int argc, char **argv) {
break;
default:
printf("split [file1]\n\t[-l N Split by N lines]\n\t[-a N Use N letters as prefix]\n\t[-b N[k|m] Split by N (kilo|mega)bytes]\n");
printf("split [alb] [file1]\n\t-l N Split by N lines\n\t-a N Use N letters as prefix\n\t-b N[k|m] Split by N (kilo|mega)bytes\n");
return 0;
}
}

View File

@ -22,7 +22,7 @@ int main(int argc, char **argv) {
break;
default:
printf("tee [file]\n\t[-a Append]\n\t[-i Ignore interrupt signals]\n");
printf("tee [ai] [file]\n\t-a Append\n\t-i Ignore interrupt signals\n");
return 0;
}
}

View File

@ -28,8 +28,10 @@ int main(int argc, char **argv) {
/* Run */
pid_t pid;
if ((pid = fork()) == 0)
if ((pid = fork()) == 0) {
execvp(argv[1], argv + 1);
exit(1);
}
int status = 0;
waitpid(pid, &status, 0);

View File

@ -1,4 +1,5 @@
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <utime.h>
#include <errno.h>
@ -6,35 +7,140 @@
#include <string.h>
#include <time.h>
int touch(const char *path) {
int fd = open(path, O_CREAT | O_RDONLY, 0666);
if (fd < 0) {
fprintf(stderr, "touch: %s\n", strerror(errno));
char c_flag;
char m_flag;
char a_flag;
int setdate(const char *path, const time_t date, char flag) {
struct utimbuf new_time;
if (flag || a_flag)
new_time.actime = date;
if (flag || m_flag)
new_time.modtime = date;
if (utime(path, &new_time) < 0) {
fprintf(stderr, "touch: %s: %s\n", path, strerror(errno));
return 1;
}
close(fd);
return 0;
}
struct utimbuf new_time;
time_t now = time(NULL);
int touch(const char *path, const time_t date) {
new_time.actime = now;
new_time.modtime = now;
if (!c_flag) {
int fd = open(path, O_CREAT | O_RDONLY, 0666);
if (fd < 0) {
fprintf(stderr, "touch: %s\n", strerror(errno));
return 1;
}
if (utime(path, &new_time) < 0)
close(fd);
}
/* Update the date to now */
if (setdate(path, time(NULL), 1))
return 1;
/* Seting custom values */
char flag = 0;
if (m_flag == 0 && a_flag == 0)
flag = 1;
if (date != -1 && setdate(path, date, flag))
return 1;
return 0;
}
int main(const int argc, const char **argv) {
if (argc == 1) {
time_t parse_date(char *str) {
char *fmt = NULL;
switch (strlen(str)) {
case 8:
fmt = "%m%d%H%M";
break;
case 10:
fmt = "%y%m%d%H%M";
break;
case 11:
fmt = "%m%d%H%M.%S";
break;
case 12:
fmt = "%Y%m%d%H%M";
break;
case 13:
fmt = "%y%m%d%H%M.%S";
break;
case 15:
fmt = "%Y%m%d%H%M.%S";
break;
case 19:
fmt = "%Y-%m-%dT%H:%M:%S";
break;
default:
fprintf(stderr, "touch: invalid date format\n");
exit(1);
}
time_t now = time(NULL);
struct tm tm = *localtime(&now);
if (!strptime(str, fmt, &tm)) {
fprintf(stderr, "touch: %s\n", strerror(errno));
exit(1);
}
return mktime(&tm);
}
int main(int argc, char **argv) {
time_t date = -1;
int opt;
while ((opt = getopt(argc, argv, "cmad:t:")) != -1) {
switch (opt) {
case 'm':
m_flag = 1;
break;
case 'a':
a_flag = 1;
break;
case 'c':
c_flag = 1;
break;
case 't':
case 'd':
date = parse_date(optarg);
break;
default:
printf("touch [cmad] [file1 file2...]\n\t-c Don't create files\n\t-a Change only atime\n\t-m Change only mtime\n\t-d Date/time to use\n");
return 0;
}
}
argv += optind;
argc -= optind;
if (argc == 0) {
printf("touch: missing operand\n");
return 1;
}
for (int i = 1; i < argc; i++)
if (touch(argv[i]))
for (int i = 0; i < argc; i++)
if (touch(argv[i], date))
return 1;
return 0;

View File

@ -100,7 +100,7 @@ int main(int argc, char **argv) {
break;
default:
printf("uname\n\t[-a All] [-s Sys]\n\t[-n Nodename] [-r Release]\n\t[-v Version] [-m Machine]\n\t[-o Os name]\n");
printf("uname [asnrvmop]\n\t-a All\n\t-s Sys]\n\t-n Nodename\n\t-r Release\n\t-v Version\n\t-m Machine\n\t-o Os name\n");
return 0;
}
}

View File

@ -84,7 +84,7 @@ int main(int argc, char **argv) {
break;
default:
printf("wc [file1 file2...]\n\t[-l Lines] [-c Bytes]\n\t[-w Words] [-t Don't print total]\n");
printf("wc [lcwt] [file1 file2...]\n\t-l Lines\n\t-c Bytes\n\t-w Words\n\t-t Don't print total\n");
return 0;
}
}

View File

@ -127,7 +127,7 @@ int main(int argc, char **argv) {
break;
default:
printf("xargs [cmd [arg1] [arg2...]]\n\t[-t Print the command]\n\t[-n Pass no more than N args]\n\t[-r Don't run command if input is empty]\n\t[-s Pass command line of no more than N bytes]\n");
printf("xargs [tnsr] [cmd [arg1] [arg2...]]\n\t-t Print the command\n\t-n Pass no more than N args\n\t-r Don't run command if input is empty\n\t-s Pass command line of no more than N bytes\n");
return 0;
}
}

View File

@ -36,7 +36,7 @@ int main(int argc, char **argv) {
break;
default:
printf("hostname [hostname]\n\t[-c CONFIG Use config file]\n");
printf("hostname [c] [hostname]\n\t-c PATH Use config file\n");
return 0;
}
}

View File

@ -80,7 +80,7 @@ int main(int argc, char **argv) {
break;
default:
printf("kill [pid1 pid2...]\n\t[-s SIG] [-l List all signals]\n\t[-a Kill all process]\n");
printf("kill [lsa] [pid1 pid2...]\n\t-s SIG\n\t-l List all signals\n\t-a Kill all process\n");
return 0;
}
}

View File

@ -1,4 +1,6 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <time.h>
#include "config.h"
@ -44,7 +46,7 @@ int main(void) {
double avg[3] = {0, 0, 0};
if (getloadavg(avg, sizeof(avg) / sizeof(avg[0])) < 0) {
fprintf(stderr, "getloadavg: getloadavg() failed\n");
fprintf(stderr, "uptime: %s\n", strerror(errno));
return 1;
}

View File

@ -190,7 +190,7 @@ int main(int argc, char **argv) {
break;
default:
printf("rc [script]\n\t[-l UNUSED]\n");
printf("rc [l] [script]\n\t-l UNUSED\n");
return 0;
}
}

View File

@ -22,7 +22,7 @@ int main(int argc, char **argv) {
break;
default:
printf("dmesg\n\t[-n LEVEL Set console logging level] [-s SIZE Buffer Size]\n");
printf("dmesg [sn]\n\t-n LEVEL Set console logging level\n\t-s SIZE Buffer Size\n");
return 0;
}
}

View File

@ -88,7 +88,7 @@ int main(int argc, char **argv) {
break;
default:
printf("mount [DEVICE] [NODE]\n\t[-t Fs type, default %s] [-o Options]\n\t[-a Mount all fs in /etc/fstab]\n\nOptions:\n", MOUNT_DEF_FS);
printf("mount [ato] [DEVICE] [NODE]\n\t-t Fs type, default %s\n\t-o Options\n\t-a Mount all fs in /etc/fstab\n\nOptions:\n", MOUNT_DEF_FS);
print_opts();
return 0;
}

View File

@ -48,7 +48,7 @@ int main(int argc, char **argv) {
break;
default:
printf("umount [dst1 dst2...]\n\t[-a Umount all]\n\t[-f Force umount] [-l Lazy umount]\n");
printf("umount [afl] [dst1 dst2...]\n\t-a Umount all\n\t-f Force umount\n\t-l Lazy umount\n");
return 0;
}
}