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 命令的一些常见用法,能够满足大部分查找文件的需求。
评论已关闭