Linux find 命令这些使用小技巧你都知道吗?

如果在 公众号 文章发现状态为 已更新, 建议点击 查看原文 查看最新内容。

状态: 未更新

原文链接: https://typonotes.com/posts/2023/03/22/linux-command-find/

find 命令的基本使用

在Linux中,find命令可以用来查找文件和目录。下面是一些使用find命令的技巧:

  1. 查找指定目录下的文件: find /path/to/directory -type f
  2. 查找指定目录下的目录: find /path/to/directory -type d
  3. 查找指定目录下的所有文件和目录: find /path/to/directory
  4. 查找指定目录下以某个名称开头的文件: find /path/to/directory -name "filename*"
  5. 查找指定目录下以某个名称结尾的文件: find /path/to/directory -name "*filename"
  6. 查找指定目录下包含某个字符串的文件: find /path/to/directory -type f -exec grep -l "string" {} +
  7. 查找指定目录下某个时间范围内修改过的文件: find /path/to/directory -type f -mtime -5
  8. 查找指定目录下某个时间范围内访问过的文件: find /path/to/directory -type f -atime +5
  9. 查找指定大小的文件: find /path/to/directory -type f -size +10M

find 和 xargs 组合使用

find 命令可以用于查找文件和目录,而 xargs 命令则可以接收来自其他命令的输出作为参数,并将这些参数提供给其他命令作为输入。这两个命令的组合使用可以非常强大。

例如,假设你想要在某个目录下查找所有的 .txt 文件并对它们执行某个操作,比如删除。你可以使用以下命令:

1
find /path/to/directory -name "*.txt" | xargs rm -f

这个命令将查找 /path/to/directory 目录下所有以 .txt 结尾的文件,并将它们的路径传递给 xargs 命令。xargs 命令将每个文件路径作为参数传递给 rm 命令,从而删除这些文件。

你也可以使用 find 命令和 xargs 命令来执行其他操作。例如,假设你想要在某个目录下查找所有的 .txt 文件并将它们转换为 .md 文件。你可以使用以下命令:

1
find /path/to/directory -name "*.txt" | xargs -I{} mv {} {}.md

这个命令将查找 /path/to/directory 目录下所有以 .txt 结尾的文件,并将它们的路径传递给 xargs 命令。-I{} 选项告诉 xargs 命令将每个文件路径作为占位符传递给 mv 命令。mv 命令将文件重命名为以 .md 结尾的文件。

总之, find 命令和 xargs 命令可以非常方便地组合使用,以便在 Linux 系统中执行各种文件和目录操作。

重点强调一下

如果一个目录文件很多, 多到直接使用 rm -rf * 会卡是的情况, 使用 find + xargs 删除文件简直是绝配。

1
find ./ -type f | xargs -n 10 rm -f 

这个命令的意思是

  1. 使用 find 查找文件
  2. -n 10 每批次 10个文件。
  3. rm -f 强制删除不确认。