我正在尝试删除某些目录,并希望能够排除名为“logs”的目录。
这是我的基本查找操作(没有排除):
# find . -type d |tail -10
./d20160124-1120-df8mfb/deployments
./d20160124-1120-df8mfb/releases
./d20160131-16993-vazqg5
./d20160131-16993-vazqg5/metadata
./d20160131-16993-vazqg5/deployments
./d20160131-16993-vazqg5/releases
./logs
./d20160203-27735-1tqbjh6
./d20160125-1120-1yccr9p
./d20160131-16993-1yf9lnc
我只是拖尾输出,这样你就可以在不占用整个页面的情况下知道发生了什么。 :)
如果我尝试使用prune命令将日志目录排除在外,则无法返回结果。
root@ops-manager:/tmp/tmp# find . -type d -prune -o -name 'logs' -print
root@ops-manager:/tmp#
我做错了什么?
一旦我做对了,我将使用-exec rm rf {} \;命令,所以我可以删除这些目录。
任何帮助都将不胜感激!
答案 0 :(得分:0)
-prune
始终求值为true,这意味着永远不会评估-o
另一侧的表达式。您需要更改顺序:
find . -type d -name 'logs' -prune -o -print