我只能列出目录本身ls -a或按目录排序的文件ls -aR
答案1
您可以使用带有格式说明符find
的命令来获取文件的基本名称。来自:-printf
%f
man find
%f Print the basename; the file's name with any leading di‐ rectories removed (only the last element). For /, the result is `/'.
例如
find . -type f -printf '%f\n' | sort
或(处理包含换行符的文件名)
find . -type f -printf '%f\0' | sort -z | xargs -r0 -n1
要省略文件本身.
,请添加-mindepth 2
。请注意,find
默认情况下匹配隐藏文件,如果这是您将标志添加-a
到ls
命令的原因。
或者使用zsh
print -rC1 -- **/*(.:t:on)
在这种情况下,要包含隐藏文件,请设置 globdots 选项 ( setopt globdots
),要省略该.
级别的文件,请将 glob 更改为*/**/*
。