Bash脚本以递归方式逐步浏览文件夹并删除文件

dna*_*oli 5 linux bash

任何人都可以给我一个bash脚本或一行命令我可以在linux上运行递归遍历当前文件夹中的每个文件夹并删除所有以'._'开头的文件或目录?

Bra*_*ley 15

将目录更改为所需的根目录(或更改.为目录)并执行:

find . -name "._*" -print0 | xargs -0 rm -rf
Run Code Online (Sandbox Code Playgroud)

xargs允许您将多个参数传递给单个命令,因此它比使用find -exec语法更快.此外,您可以运行此一次,而无需|查看它将删除的文件,确保它是安全的.

  • 这将被带有空格的文件名混淆,如果您处理来自Mac环境的文件,这通常是常见的.使用null-delimiter选项来查找`find`和`xargs`(`find.-name"._*" - print0 | xargs -0 rm -rf`)以避免此问题. (2认同)
  • 为什么不使用`-delete` 选项? (2认同)