从当前目录的每个子文件夹中删除匹配的文件

从当前目录的每个子文件夹中删除匹配的文件

我用这个来复制每个目录中的文件:

find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess

现在我需要执行反向操作并从我当前所在的每个子目录中删除具有匹配名称的文件

答案1

如果我理解你的描述正确的话,你想.htaccess从当前目录的子目录中删除,但不想从它们的子目录中删除。换句话说,你想删除foo/.htaccess但不想删除foo/bar/.htaccess。那么就很简单了:

rm */.htaccess

find如果没有最初的命令,你也可以完成任务。find当您想要递归地遍历目录时最有用,即应用于子目录和子子目录等。

for d in */; do cp -p .htaccess "$d"; done

答案2

find /path/to/dir -name .htaccess -delete

答案3

以下假设您之前find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess从运行此目录的同一目录运行:

find . -maxdepth 2 -type f -name .htaccess -exec rm -v {} \;

-v(详细)选项是可选的,但它有助于查看实际删除的文件。

相关内容