大家好, 我是 老麦, 一个运维老兵, 现在专注于 Golang,DevOps,云原生基础设施建设。
Linux find 命令这些使用小技巧你都知道吗?
状态: 未更新
原文链接: https://typonotes.com/posts/2023/03/22/linux-command-find/
find 命令的基本使用
在Linux中,find
命令可以用来查找文件和目录。下面是一些使用find
命令的技巧:
- 查找指定目录下的文件:
find /path/to/directory -type f
- 查找指定目录下的目录:
find /path/to/directory -type d
- 查找指定目录下的所有文件和目录:
find /path/to/directory
- 查找指定目录下以某个名称开头的文件:
find /path/to/directory -name "filename*"
- 查找指定目录下以某个名称结尾的文件:
find /path/to/directory -name "*filename"
- 查找指定目录下包含某个字符串的文件:
find /path/to/directory -type f -exec grep -l "string" {}
- 查找指定目录下某个时间范围内修改过的文件:
find /path/to/directory -type f -mtime -5
- 查找指定目录下某个时间范围内访问过的文件:
find /path/to/directory -type f -atime 5
- 查找指定大小的文件:
find /path/to/directory -type f -size 10M
find 和 xargs 组合使用
find
命令可以用于查找文件和目录,而 xargs
命令则可以接收来自其他命令的输出作为参数,并将这些参数提供给其他命令作为输入。这两个命令的组合使用可以非常强大。
例如,假设你想要在某个目录下查找所有的 .txt
文件并对它们执行某个操作,比如删除。你可以使用以下命令:
find /path/to/directory -name "*.txt" | xargs rm -f
这个命令将查找 /path/to/directory
目录下所有以 .txt
结尾的文件,并将它们的路径传递给 xargs
命令。xargs
命令将每个文件路径作为参数传递给 rm
命令,从而删除这些文件。
你也可以使用 find
命令和 xargs
命令来执行其他操作。例如,假设你想要在某个目录下查找所有的 .txt
文件并将它们转换为 .md
文件。你可以使用以下命令:
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
删除文件简直是绝配。
find ./ -type f | xargs -n 10 rm -f
这个命令的意思是
- 使用
find
查找文件 -n 10
每批次 10个文件。rm -f
强制删除不确认。