【问题标题】:Processing only the current directory with find/prune仅使用 find/prune 处理当前目录
【发布时间】:2014-05-15 15:06:48
【问题描述】:

我一直在阅读 find 的 -prune 操作。我做的一项常见任务是只处理目录中的文件,而忽略所有目录。

据我所知,如果您知道目录的名称(或与其名称匹配的通配符),Prune 非常适合忽略目录。但是,如果您不知道它们的名称(或匹配文件和目录的模式)怎么办?

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

例如,假设我想处理我的主目录的所有文件,但不递归到任何子目录。假设我的目录结构和文件如下所示(目录以“/”结尾):

~/tmpData.dat ~/.bashrc ~/.vimrc ~/.Xdefaults ~/tmp/ ~/tmp/.bashrc ~/bkups/.bashrc ~/bkups/.vimrc ~/bkups/.Xdefaults ~/bkups/tmpData.dat

.. 正确的查找/修剪命令是什么?

【问题讨论】:

    标签: bash find


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 2013-06-08
      • 2020-02-20
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多