我正在使用find /tmp/tartest/ -maxdepth 1 -mindepth 1 -not -type l
命令来获取除符号链接之外的所有文件和目录的列表。这给了我以下o / p:
/tmp/tartest/hi.txt
/tmp/tartest/hello1.txt
/tmp/tartest/testdir
/tmp/tartest/hello.txt
通知/tmp/tartest/testdir
是否可以以/
结尾? /tmp/tartest/testdir/
是否找到所有目录?
我正在外壳脚本中使用此o / p。
答案 0 :(得分:5)
find
表达式可以具有分支逻辑。 默认附加两个后续动作的方式是-a
(“和”),但是您也可以手动使用-o
(“或”)。
因此,使用GNU find
(在这里使用,因为它支持-printf
,可让您指定任意格式的字符串):
find /tmp/tartest -maxdepth 1 \
-type d -printf '%p/\n' \
-o -printf '%p\n'
注意:
-maxdepth 1
是全局的,因此它自然适用于所有分支。-type d -printf '%p/\n'
打印目录名称(-type d
为真的内容),后跟/
。-o -printf '%p\n'
以或条件附加到上面,使得没有printf
的{{1}}仅在某些东西无效时运行匹配/
。