這裏有一個例子:如何使用「查找」修剪一些目錄,同時保留一些子目錄
#tree
.
├── dir1
│ ├── file1
│ ├── subdir1
│ │ └── file11
│ ├── subdir2
│ │ └── file12
│ ├── subdir3
│ ├── subdir4
│ ├── subdir5
│ └── subdir6
├── dir2
├── dir3
│ └── dir1
│ └── file11
├── dir4
├── dir5
└── dir6
下面的命令找出所有文件,除了那些dir1
和dir2
下。
find -not \(-path './dir1' -prune -o -path './dir2' -prune \)
我的問題是如何找到的所有文件,除了dir1
,dir2
同時還搜索到子目錄:./dir/subdir1
?
我試過一些這樣的,但不起作用。我不知道什麼是合併邏輯表達式的正確方法。
find -not \(\
\(-path './dir1' -a -not -path './dir1/subdir1' \) -prune -o \
-path './dir2' -prune \)
忘了提,我只是想知道如何使用邏輯組合在命令find
:-o
-a
-not
等,以實現這一目標。使用濾鏡(grep
,sed
,awk
)輸出find
後的作品,但超出了我的問題。感謝大家發佈了他們的答案。
除外輸出:
.
./dir6
./dir5
./dir4
./dir3
./dir3/dir1
./dir3/dir1/file11
./dir1/subdir1
./dir1/subdir1/file11
感謝您的回答。但是應該排除'./dir1/subdir [2345]'。 – LaputaPrince
@LaputaPrince我更新我的答案使用awk。試試:)。 – atupal
@LaputaPrince你解決了這個問題嗎? :) – atupal