在bash中,查找以特定扩展名结尾的所有文件,并删除父文件夹及其所有内容

时间:2014-06-30 09:48:02

标签: bash sh

如何查找以某个扩展名(.exe)结尾的所有文件并删除父文件夹

2 个答案:

答案 0 :(得分:2)

如果要删除包含.exe文件的任何文件夹,可以使用以下内容:

sudo find / -name '*.exe' -exec sh -c 'rm -rf $(dirname $0)' {} \;

在此,您将sh -c 'rm -rf $(dirname $0)' {}应用于找到的每个文件。

  • sh -c表示将使用/bin/sh解释以下命令,-c标志,该命令的参数将以内联方式传递
  • rm -rf $(dirname $0)是删除所提供的第一个参数的父文件夹(由dirname提供)的命令。
  • {}是为您的命令提供的参数。它特定于find并包含每场比赛的完整路径

答案 1 :(得分:1)

使用findrm,例如:

for f in $(find /root/dir -type f -name \*.exe); do
    rm -rf ${f%/*}
done