0

我用这个:

$ find . -type d \( -path './2018*' -o -path "./S*" \) -prune\
         -o -print

获取所有目录 ( -type d) 不包括2018,S1S2

目录的排除工作,但我得到了很多文件:

...
./git_wc
./budget
./budget/mail_0625
./budget/mail_0625/prez.pptx
./budget/budget_v2.xlsx
./budget/achats
./budget/achats/106-1396140_V1_20190731.pdf
./rh
./rh/file.docx

顺便说一句,我寻找一个纯粹的find答案,我知道如何做到这一点tree

$ tree -d -L 2 -I 'S1|2018' -fi
...
./git_wc
./budget
./budget/mail_0625
./budget/achats
./rh
...
4

1 回答 1

2

您的命令的逻辑是“修剪名称与 glob ./2018* 或 ./S* 匹配的所有目录;打印其他所有内容”。你要:

 find . \( -path './2018*' -o -path "./S*" \) -prune\
         -o -type d -print
于 2019-09-01T14:30:28.667 回答