使用find / prune仅处理当前目录

时间:2014-05-15 15:06:48

标签: bash find

我一直在阅读查找-prune的动作。我做的一个常见任务是只处理目录的文件,忽略所有目录。

从我所学到的东西来看,如果你知道他们的名字(或者与他们的名字匹配的通配符),那么修剪它是很好的。但是如果你不知道他们的名字(或者是一个与文件和目录匹配的模式)怎么办呢?

我发现-maxdepth实现了我想要做的事情。我只是想知道等效的-prune方法可能是什么。

例如,假设我想处理主目录的所有文件,但不能递归到任何子目录。让我们说我的目录结构和文件看起来像这样(目录以' /'结尾):

〜/ tmpData.dat 在〜/ .bashrc 的〜/ .vimrc 的〜/ .Xdefaults 〜/ tmp目录/ 〜/ TMP / .bashrc中 〜/ bkups / .bashrc中 〜/ bkups / .vimrc中 〜/ bkups / .Xdefaults中 〜/ bkups / tmpData.dat

..什么是正确的find / prune命令?

1 个答案:

答案 0 :(得分:0)

好的,我找到了自己的解决方案。我只是指定匹配我的所有内容的模式 主目录(例如'〜/ *')。但为了包括我的所有点文件(.bashrc, 等),我必须使用两个模式;一个用于非虚线文件名,一个用于文件 从点开始:

find ~/* ~/.* -type d -prune -o -type f -print