我正在尝试在 Unix 中使用 find 命令,并且我知道如何使用它的基础知识。例如,我有四个文件夹,A、B、C 和 D。在每个文件夹下,我有一个名为hi.dat. 要查看所有文件夹,我会这样做:
find * -name hi.dat.
伟大的!但现在,如果我做不想要看的文件夹d?我可以尝试这样的事情:
find * not D/* -name hi.dat?
我不想输入:
find A/* B/* C/* -name ... 因为我显然有三个以上的文件夹,而这些只是用作示例。
谢谢!阿米特
gee*_*aur 12
那将是-prune- 但有一个小技巧:
$ find . \( -name D -prune \) -o -name hi.dat
Run Code Online (Sandbox Code Playgroud)
-prune表示“不要在此路径上进一步查看”,因此您需要另一个目录分支,而不是D. (-o意思是“或”。)还要跳过其他路径:
$ find . \( \( -name D -o -name Dminor \) -prune \) -o -name hi.dat
Run Code Online (Sandbox Code Playgroud)
Den*_*son 11
在 Bash 中:
shopt -s extglob
find !(D) -name hi.dat
Run Code Online (Sandbox Code Playgroud)
Ksh 和 zsh 的工作方式类似。
| 归档时间: |
|
| 查看次数: |
8510 次 |
| 最近记录: |