是否有一个 CLI 命令可以按字母顺序(但在一个 txt 或电子表格中)打印出不同硬盘驱动器中包含的文件夹列表?
例如,假设我有这样的配置:
/sda/Alfa/File 1
/sdb/Bravo/File 5
/sdb/Bravo/File 20
/sdc/Delta/File 14
/sdc/Delta/File 11
我想要输出的是 TXT 或电子表格文件,其中的文件夹按字母顺序列出,例如:
File 1
File 5
File 11
File 14
File 20
我可以从 CLI 执行此操作吗?
答案1
find /sda /sdb /sdc -type f -printf '%f\n' | sort
例如:
$ tree sd[a-c]
sda
└── Alfa
└── File 1
sdb
└── Bravo
├── File 20
└── File 5
sdc
└── Delta
├── File 11
└── File 14
$ find sd[a-c] -type f -printf '%f\n' | sort
File 1
File 11
File 14
File 20
File 5
注意这就是通常所说的字母顺序,更准确地说是字典顺序。(5
字符不在1
字符之前,因此5
字符串不能在14
字符串之前 -05
但是,会。)
解释:
find
是一个用于查找事物的程序。
-type f
表示我们想要常规文件,而不是目录(或其他特殊文件)。- 的通常输出
find
是文件的路径,所以我们会得到sda/Alfa/File 1
,但是使用-printf '%f\n'
,我们告诉find
只打印文件名。