bash - 在子文件夹 bash 中查找文件

标签 bash shell

我想编写一个脚本,它接受一个文件夹并删除该文件夹中子文件夹中的所有文件。

例如:

  • 美国广播公司
    • a.txt
    • b.txt
  • 效果
    • e.txt
  • x.txt

脚本运行时,应该删除 a.txt、b.txt 和 e.txt 而不是 x.txt(因为它不在文件夹中)。

最佳答案

编写 bash 脚本时,首先要决定的是要使用哪个命令。

find 命令以递归方式返回文件夹中的所有文件。

找到 ${dir} -name "*.txt"-delete

上述命令在dir(存储在变量中的目录)中搜索以.txt 结尾的文件并删除它们。 但是,如果您只想在子目录中查找文件怎么办?

你可以使用: 找到 ${dir}/*/-name "*.txt"-delete

注意我们如何添加 /*/ 来表示查找该文件夹内的所有文件夹。 您还可以添加检查 -type f 以确认我们正在删除文件而不是其他任何内容。

关于bash - 在子文件夹 bash 中查找文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079704/

相关文章:

bash - bash vi 模式下 tmux 清除历史记录

java - Maven Appassembler 插件 - stdout 和/或 stderr 重定向

linux - 命令 'sudo gearmand -d' 和 'sudo service gearman-job-server start' 有什么区别?

linux - 为什么我在数字比较时收到命令未找到错误?

regex - grepping shell脚本中包含特殊字符的变量

Bash 脚本 - 文件目录不存在

linux - 如何防止长电子邮件成为附件?

c - C 中的 Unix Shell - 更改目录

linux - aplay 在 systemd 运行时不播放音频

linux - 在 Shell Script Linux 中重命名文件