区分 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;
|
||||
}
|
||||
|
||||
int do_ls(char *cmdline)
|
||||
int do_ls(char *cmdline, bool detail)
|
||||
{
|
||||
char pathbuf[BUFLEN];
|
||||
char fpathbuf[BUFLEN];
|
||||
@ -240,17 +240,21 @@ int do_ls(char *cmdline)
|
||||
|
||||
for (int i = 0; i < ret; i++) {
|
||||
dirat = (struct dirent *) print_ptr;
|
||||
// 文件类型
|
||||
char type = 'f';
|
||||
if (dirat->d_type == 2) {
|
||||
type = 'd'; // 目录
|
||||
if (detail) {
|
||||
// 文件类型
|
||||
char type = 'f';
|
||||
if (dirat->d_type == 2) {
|
||||
type = 'd'; // 目录
|
||||
}
|
||||
// 文件大小
|
||||
strcpy(fpathbuf, pathbuf);
|
||||
path_append(fpathbuf, dirat->d_name);
|
||||
int size = fs_get_size(fpathbuf);
|
||||
// 输出
|
||||
printf("%c %10d %s\n", type, size, dirat->d_name);
|
||||
} else {
|
||||
printf("%s\n", dirat->d_name);
|
||||
}
|
||||
// 文件大小
|
||||
strcpy(fpathbuf, pathbuf);
|
||||
path_append(fpathbuf, dirat->d_name);
|
||||
int size = fs_get_size(fpathbuf);
|
||||
// 输出
|
||||
printf("%c %10d %s\n", type, size, dirat->d_name);
|
||||
print_ptr += dirat->d_reclen;
|
||||
}
|
||||
} else {
|
||||
@ -318,9 +322,13 @@ int builtin_cmd(char *cmdline)
|
||||
return !ret ? 1 : -1;
|
||||
}
|
||||
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;
|
||||
}
|
||||
if (!strcmp(cmd, "echo")) {
|
||||
ret = do_echo(cmdline);
|
||||
return !ret ? 1 : -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user