区分 ls、ll 指令
This commit is contained in:
parent
752d175228
commit
b51087922a
@ -218,7 +218,7 @@ int fs_read_all(char *path, void **ret_buf)
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
int do_ls(char *cmdline)
|
int do_ls(char *cmdline, bool detail)
|
||||||
{
|
{
|
||||||
char pathbuf[BUFLEN];
|
char pathbuf[BUFLEN];
|
||||||
char fpathbuf[BUFLEN];
|
char fpathbuf[BUFLEN];
|
||||||
@ -240,6 +240,7 @@ int do_ls(char *cmdline)
|
|||||||
|
|
||||||
for (int i = 0; i < ret; i++) {
|
for (int i = 0; i < ret; i++) {
|
||||||
dirat = (struct dirent *) print_ptr;
|
dirat = (struct dirent *) print_ptr;
|
||||||
|
if (detail) {
|
||||||
// 文件类型
|
// 文件类型
|
||||||
char type = 'f';
|
char type = 'f';
|
||||||
if (dirat->d_type == 2) {
|
if (dirat->d_type == 2) {
|
||||||
@ -251,6 +252,9 @@ int do_ls(char *cmdline)
|
|||||||
int size = fs_get_size(fpathbuf);
|
int size = fs_get_size(fpathbuf);
|
||||||
// 输出
|
// 输出
|
||||||
printf("%c %10d %s\n", type, size, dirat->d_name);
|
printf("%c %10d %s\n", type, size, dirat->d_name);
|
||||||
|
} else {
|
||||||
|
printf("%s\n", dirat->d_name);
|
||||||
|
}
|
||||||
print_ptr += dirat->d_reclen;
|
print_ptr += dirat->d_reclen;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -318,7 +322,11 @@ int builtin_cmd(char *cmdline)
|
|||||||
return !ret ? 1 : -1;
|
return !ret ? 1 : -1;
|
||||||
}
|
}
|
||||||
if (!strcmp(cmd, "ls")) {
|
if (!strcmp(cmd, "ls")) {
|
||||||
ret = do_ls(cmdline);
|
ret = do_ls(cmdline, false);
|
||||||
|
return !ret ? 1 : -1;
|
||||||
|
}
|
||||||
|
if (!strcmp(cmd, "ll")) {
|
||||||
|
ret = do_ls(cmdline, true);
|
||||||
return !ret ? 1 : -1;
|
return !ret ? 1 : -1;
|
||||||
}
|
}
|
||||||
if (!strcmp(cmd, "echo")) {
|
if (!strcmp(cmd, "echo")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user