bash - 使用 Bash 遍历目录和子目录中的所有文件

标签 bash

这个问题在这里已经有了答案:





How to loop through a directory recursively to delete files with certain extensions

(16 个答案)


3年前关闭。




我知道如何遍历目录中的所有文件,例如:

for i in *
do
  <some command>
done

但我想浏览目录中的所有文件,包括(尤其是!)子目录中的所有文件。有没有一种简单的方法可以做到这一点?

最佳答案

find如果文件名中没有空格或其他特殊字符,命令对于这种事情非常有用:
例如:

for i in $(find . -type f -print)
do
    stuff
done
该命令从搜索开始(第一个参数)生成相对路径名。
正如所指出的,如果您的文件名包含空格或其他字符,这将失败。
您也可以使用 -exec选项可避免文件名中的空格问题。它为找到的每个文件执行给定的命令。大括号是文件名的占位符:
find . -type f -exec command {} \;

关于bash - 使用 Bash 遍历目录和子目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51654041/

相关文章:

bash - 通过命令行检查 BitBucket 存储库是否存在

regex - Bash 脚本中的正则表达式

bash - 使用不同的输入文件运行脚本

linux - 如何在使用箭头进行导航的 bash 脚本中创建界面?

linux - 根据 shell 中的文件输出创建文件名

macos - 如何使用 Shell 在 MAC OSX 中一个一个地启动 dmg?

linux - 重定向程序输出

bash - 关联数组的 ".keys()"

json - 使用 bash 脚本在超过硬盘大小时自动清除 Elasticsearch 索引

linux - 如何在 Linux 中使用 curl 或任何 shell 脚本或任何命令行实用程序将整个目录上传到 artifactory?