Linux下find命令详解
find
是 Linux 下一个非常重要的命令,它用于在指定目录下查找文件。该命令提供了多种查找标准,如文件名、文件类型、文件大小、文件权限、文件属主、文件修改时间等。
- 基本用法
find
命令的基本格式如下:
find [path...] [expression]
其中,path
是 find 命令在其中查找文件的目录,可以是相对路径或绝对路径。expression
是 find 命令的查找标准,可以是文件名、文件类型、文件大小、文件权限、文件属主、文件修改时间等。
例如,要在当前目录下查找所有文件名为 myfile
的文件,可以使用以下命令:
find . -name myfile
- 按文件名查找
可以使用 -name
参数按文件名查找文件。例如,要在 /home
目录下查找所有以 .txt
结尾的文件,可以使用以下命令:
find /home -name "*.txt"
- 按文件类型查找
可以使用 -type
参数按文件类型查找文件。例如,要在当前目录下查找所有的目录,可以使用以下命令:
find . -type d
- 按文件大小查找
可以使用 -size
参数按文件大小查找文件。例如,要在 /home
目录下查找所有大于 100MB 的文件,可以使用以下命令:
find /home -size +100M
- 按文件权限查找
可以使用 -perm
参数按文件权限查找文件。例如,要在当前目录下查找所有拥有执行权限的文件,可以使用以下命令:
find . -perm /a+x
- 按文件修改时间查找
可以使用 -mtime
参数按文件修改时间查找文件。例如,要在 /var
目录下查找所有在过去 7 天内被修改过的文件,可以使用以下命令:
find /var -mtime -7
- 结合使用多种条件
可以使用 -a
(and) 或 -o
(or) 将多个条件结合在一起。例如,要在 /home
目录下查找所有以 .txt
结尾并且大于 100MB 的文件,可以使用以下命令:
find /home -name "*.txt" -a -size +100M
- 排除某些文件
可以使用 -not
参数排除某些文件。例如,要在当前目录下查找所有不是 .txt
结尾的文件,可以使用以下命令:
find . -not -name "*.txt"
- 执行命令
可以使用 -exec
参数对查找到的文件执行命令。例如,要在 /var
目录下查找所有 .log
文件并删除它们,可以使用以下命令:
find /var -name "*.log" -exec rm -f {} \;
以上就是 find
命令的一些常见用法,能够满足大部分查找文件的需求。
评论已关闭