Jen*_*nov 5 linux bash ubuntu gnu find
当我使用
find . -type f -path ./source/script -prune -o -print;
Run Code Online (Sandbox Code Playgroud)
我在“修剪过的” ./source/script 目录中获取文件。
...
./source/script
./source/script/myapp02.4372d2ea3388.js
./source/script/myapp02.js
./source/script/myapp02.1798d7bc34d2.js
...
Run Code Online (Sandbox Code Playgroud)
但是当我使用:
find . -path ./source/script -prune -o -type f -print;
Run Code Online (Sandbox Code Playgroud)
“pruned”目录中的文件被省略:
./generate.py
./readme.txt
./source/class/myapp02/Application.js
./source/class/myapp02/Application.js:75:
./source/class/myapp02/__init__.js
./source/class/myapp02/Application.js~
./source/class/myapp02/theme/Font.js
./source/class/myapp02/theme/Theme.js
./source/class/myapp02/theme/Decoration.js
./source/class/myapp02/theme/Color.js
./source/class/myapp02/theme/Appearance.js
./source/class/myapp02/simulation/DemoSimulation.js
./source/class/myapp02/test/DemoTest.js
./source/translation/readme.txt
./source/index.html
./source/index.html~
./source/resource/myapp02/test.png
./Manifest.json
./config.json
Run Code Online (Sandbox Code Playgroud)
在另一个例子中,我看到:
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o -print
Run Code Online (Sandbox Code Playgroud)
我看到的与我的唯一区别-type d是在我的代码中-type f。
这-prune是被忽略和查找程序在“修剪”目录中搜索的唯一原因吗?
find . -type f -path ./source/script -prune -o -print;
Run Code Online (Sandbox Code Playgroud)
被解释为
find . (-type f AND -path ./source/script AND -prune) OR (-print);
Run Code Online (Sandbox Code Playgroud)
find . -path ./source/script -prune -o -type f -print;
Run Code Online (Sandbox Code Playgroud)
被解释为
find . (-path ./source/script AND -prune) OR (-type f AND -print);
Run Code Online (Sandbox Code Playgroud)
请注意,-print和是计算结果为true 的-prune表达式。
因此,如果(-path ./source/script AND -prune)为true,则(-type f AND -print)不会评估也-print不会调用。`(-path ./source/script AND -prune)对于所有文件和子目录都是如此./source/script
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |