【问题标题】:SSH/Shell - Remove all folders with name "____" within folder AND subfoldersSSH/Shell - 删除文件夹和子文件夹中名称为“____”的所有文件夹
【发布时间】:2010-06-11 03:18:55
【问题描述】:

我有一个脚本正在复制一个包含几个子文件夹的文件夹。它从中复制的原始文件是 SVN 文件夹的一部分,因此它也在复制那些“.svn”文件夹。

我想从新目的地中删除那些,我的最佳猜测是:

rm -Rf dir/*.svn

哪个不起作用,有没有办法做到这一点,还是我需要手动进入每个文件夹将其删除?

【问题讨论】:

    标签: shell ssh


    【解决方案1】:

    从您要过滤其内容的文件夹中:

    find . -name '.svn' -print0 | xargs -0 rm -rf

    find . -name '.svn' -exec rm -rf {} \;

    【讨论】:

    • -print0/-0 组合是为了防止您的路径中有任何空格。)
    • 如果我希望它也是另一个目录(例如 DW 的 _notes),那将是一个单独的命令还是可以添加到这个目录中?
    • find . -name '.svn' -o -name '_notes' -print0 | xargs -0 rm -rf 名称是 .svn 或名称是 _notes
    • 您也可以使用其中一个正则表达式标志来做到这一点,但斯蒂芬的回答(+1'd)更容易(特别是如果您对正则表达式不满意)。
    • 您也可以一开始就避免复制 .svn 目录,这样就不必删除它们。检查man rsync--exclude= 选项。 (注意 rsync 可以用于本地到本地的副本,它没有必须是远程的)
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多