使用查找排除子目录 [英] Exclude a sub-directory using find
本文介绍了使用查找排除子目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这样的目录结构
data
|___
|
abc
|____incoming
def
|____incoming
|____processed
123
|___incoming
456
|___incoming
|___processed
在Data目录内的所有文件夹中都有一个传入的子文件夹.我想从def/incoming和456/incoming dirs以外的所有文件夹和子文件夹中获取所有文件.我尝试了以下命令
There is an incoming sub-folder in all of the folders inside Data directory. I want to get all files from all the folders and sub-folders except the def/incoming and 456/incoming dirs. I tried out with following command
find /home/feeds/data -type d \( -name 'def/incoming' -o -name '456/incoming' -o -name arkona \) -prune -o -name '*.*' -print
但是它没有按预期工作.
but it is not working as expected.
Ravi
推荐答案
这有效:
find /home/feeds/data -type f -not -path "*def/incoming*" -not -path "*456/incoming*"
说明:
-
查找/home/feeds/data
:从指定路径开始递归查找 -
-type f
:仅查找文件 -
-不是-path"* def/incoming *"
:请勿将def/incoming
包含在内作为路径的一部分 -
-不是-path"* 456/incoming *"
:请勿将456/incoming
包含在内作为路径的一部分
find /home/feeds/data
: start finding recursively from specified path-type f
: find files only-not -path "*def/incoming*"
: don't include anything withdef/incoming
as part of its path-not -path "*456/incoming*"
: don't include anything with456/incoming
as part of its path
这篇关于使用查找排除子目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文