需要寻找命令生成的输出与ls -p
生成的输出完全相同?
由于find /path/to/ -mindepth 1 -maxdepth 1 -exec basename {} \;
目录没有尾部斜杠..我需要输出文件夹名称有尾部斜杠
示例输出:
folder 1/
my-file-1.sh
寻找命令列出没有完整路径的目录内容和带有尾部斜杠的文件夹
答案1
$ find /path/to -mindepth 1 -maxdepth 1 -exec sh -c '
[ -d "$1" ] && printf "%s/\n" "${1##*/}" || printf "%s\n" "${1##*/}" ' _ {} \;
aDirectory/
afile
说明:
[ -d "$1" ]
,这检查它是否是目录,如果是,则运行以下命令printf
:printf "%s/\n" "${1##*/}"
否则,运行如下
printf
:printf "%s\n" "${1##*/}"
${1##*/}
:这会删除所有内容的最长匹配*
,直到从文件/目录路径的乞求开始看到的最后一个斜杠/
,这只会导致最后一个目录/文件名。
答案2
至少使用 GNU find,您可以使用内置的-printf
例如
find . -mindepth 1 -maxdepth 1 -type d -printf '%f/\n' -o -type f -printf '%f\n'