我希望能够遍历一个目录,包括其子目录以及子目录的子目录等等,仅打印文件名(不包括目录名)。我还想让结果每行显示一个文件名,并按字母顺序排序。
请注意,使用“ls -LR”或“ls -xLR”命令无法实现此功能,因为“ls”将结果格式化成了一种表格形式。
各位,如果您可以编辑它,请给出您的建议。
请注意,使用“ls -LR”或“ls -xLR”命令无法实现此功能,因为“ls”将结果格式化成了一种表格形式。
各位,如果您可以编辑它,请给出您的建议。
进入您想要搜索的目录,然后运行:
find . -type f -exec basename {} \; | sort
find
默认递归查找。-type f
只会打印文件而不是目录。-exec basename
对结果运行 basename
命令(因此不会打印路径)。sort
将对结果进行排序。应该可以。你输错了吗?你用的是哪个版本的Linux?请参考下面的示例
testserver:~ # find /etc -type f | sort
/etc/.pwd.lock
/etc/DIR_COLORS
/etc/HOSTNAME
/etc/Muttrc
....
....
/etc/zmd/zmd.conf
/etc/zshenv
/etc/zshrc
/etc/zypp/zypp.conf
testserver:~ #
(附言:抱歉,我试图将其添加为评论,但我的声望不足50,所以作为答案添加)
关于“find”和“sort”实用程序怎么样?
find <dir> -type f |sort
<dir>
更改为实际目录,例如.
或$HOME
。 - jimm-cl
find . -type f | sort
。 - jimm-cl.
是多余的,-printf '%f\n'
比-exec basename {} \;
更快/更好,可以避免子 shell 和不必要的命令。 - Reinstate Monica Please