Linux系统中find命令参数详解。

本文详细介绍Linux下find命令的使用方法,包括查找文件的各种条件如名称、类型、大小、权限及时间戳等,通过多个实例展示如何高效利用find进行文件搜索与管理。

1、find定义.
find命令用于查找指定目录下的文件,同时也可以调用其他命令执行相应的操作。
2、find常见用法.
find path -option [-print] [-exec -ok command] {};
3、find命令参数.

path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

-name
filename
#查找名为filename的文件

-perm
#按执行权限来查找

-user
username
#按文件属主来查找

-group
groupname #按组来查找

-mtime
-n +n
#按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-atime
-n
+n
#按文件访问时间来查GIN: 0px">

-ctime -n
+n
#按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup
#查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser
#查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer f1
!f2
找文件,-n指n天以内,+n指n天以前

-type
b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size
n[c]
#按文件大小查找

-depth
#使查找在进入子目录前先行查找完本目录

-fstype
#查更改时间比f1新但比f2旧的文件

-mount
#查文件时不跨越文件系统mount点

-follow
#如果遇到符号链接文件,就跟踪链接所指的文件

-cpio
%; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-mount
#查文件时不跨越文件系统mount点

-follow
#如果遇到符号链接文件,就跟踪链接所指的文件

-cpio
#对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune
#忽略某个目录

-amin      # 查找在系统中最后N分钟访问的文件

-mmin      # 查找在系统中最后N分钟里修改过的文件

实例

(1)find工具name参数案例,详解如下

find
/data/ -name “*.txt””:查找/data/目录以.txt结尾的文件

find
/data/ -name "[A-Z]*”:查找/data/目录以大写字母开头的文件

find
/data/ -name "test*”:#查找/data/目录以test开头的文件

(2)find工具-type参数案例,详解如下

fnd/data/ -type d:查找/data/目录下的文件夹

find/ data/ ! -type d:查找/data/目录下的非文件夹

find/data/- type l:查找/data/目录下的链接文件

find/data/ - type d |xargs chmod 755 -R:查找目录类型并将权限设置为755

find/data/- type f |xargs chmod 644-R:查找文件类型并将权限设置为644

(3)find工具size参数案例,详解如下

find /data/ -size +1M:查找文件大小大于1MB的文件

find /data/ -size 10M:查找文件大小为10MB的文件。

find /data/ -size -1M:查找文件大小小于1MB的文件。

(4)find工具-perm参数案例,详解如下:

Find /data/ -perm 755:查找/data/目录权限为755的文件或者目录

Find /data/ -perm -775:权限小于775的文件或目录

Find /data/ -perm +644:查找文件权限符号为644以上的文件

(5)find工具mime参数案例,详解如下

atime, access time:文件被读取或者执行的时间

ctime, change time:文件状态改变时间

mtime, modify time:文件内容被修改的时间

Find /data/ -mtime +30-name “*.log”:查找30天以前的log文件

Find /data/ -mtime -30 -name ““.txt”:查找30天以内的txt文件

Find /data/ -mtime 30 -name " *.txt":查找第30天的txt文件

find /data/ -mmin +30-name ".log”:查找30min以前被访问的log文件

find /data/ -amin -30-name ".log”:查找30min以内被访问的log文件

find /data/ -cmin
30-name ".log”:查找第30min改变的log文件

(6)find工具参数综合案例,代码如下

查找/data目录以,.log结尾,文件大于10KB的文件,同时/cp到/tmp目录

find /data/ -name "*. log” -type f -size
+10k -exec cp {}
/tmp/ ;

查我/data/目录以结尾,文件大于10kB的文件,权限为644并别除该文件

find /data/ -name “*.log” -type f -size +10k -m perm 644 -exec rm -rf {} ;

查找/data/目录以.log结尾,30天以前的文件,大小大于10并移动到/temp目录find /data/ -name " . log" -type f-mtine +30 -size +10M -exec mv {}
/temp/ \xargs:

在Ubuntu环境中,`find` 命令是一个非常强大且灵活的工具,用于搜索和查找文件系统中的文件和目录。它支持多种参数来精确控制搜索条件和行为。以下是 `find` 命令常用参数的详细说明。 ### 按名称查找 - `-name filename`:按指定的文件名查找文件。 ```bash find /path/to/search -name "example.txt" ``` - `-iname filename`:忽略大小写地按文件名查找。 ```bash find /path/to/search -iname "example.txt" ``` ### 按类型查找 - `-type type`:按文件类型查找。常见类型包括: - `f`:普通文件 - `d`:目录 - `l`:符号链接 - `c`:字符设备 - `b`:块设备 示例: ```bash find /path/to/search -type f ``` ### 按时间戳查找 - `-mtime n`:按修改时间查找文件。`n` 表示天数,可以是正数或负数。 - `+n`:表示在 `n` 天之前修改的文件。 - `-n`:表示在过去 `n` 天内修改的文件。 - `n`:表示正好在 `n` 天前修改的文件。 示例: ```bash find /path/to/search -mtime +7 # 查找7天前修改的文件 ``` - `-atime n`:按访问时间查找文件。 - `-ctime n`:按状态更改时间查找文件。 ### 按权限查找 - `-perm mode`:按权限模式查找文件。例如,查找权限为 `644` 的文件: ```bash find /path/to/search -perm 644 ``` - `-perm -mode`:查找权限包含指定模式的文件(与操作)。 - `-perm /mode`:查找权限匹配任意指定模式位的文件(或操作)。 ### 按大小查找 - `-size +n/-n/n`:按文件大小查找文件。单位包括: - `b`:512字节块(默认) - `c`:字节 - `k`:千字节 - `M`:兆字节 - `G`:吉字节 示例: ```bash find /path/to/search -size +10k # 查找大于10KB的文件 ``` ### 按用户和组查找 - `-user username`:按用户名查找文件。 ```bash find /path/to/search -user john ``` - `-group groupname`:按组名查找文件。 ```bash find /path/to/search -group developers ``` ### 执行操作 - `-exec command {} \;`:对找到的每个文件执行指定命令。`{}` 是占位符,表示当前文件名。 示例: ```bash find /path/to/search -name "*.log" -exec rm {} \; ``` - `-delete`:直接删除找到的文件。 ```bash find /path/to/search -name "*.tmp" -delete ``` - `-print`:默认操作,将结果输出到终端。 ### 其他常用参数 - `-maxdepth n`:限制搜索的最大深度(目录层级)。 ```bash find /path/to/search -maxdepth 2 -name "*.txt" ``` - `-mindepth n`:限制搜索的最小深度。 ```bash find /path/to/search -mindepth 2 -name "*.txt" ``` 通过组合这些参数,可以实现复杂的搜索逻辑。例如,以下命令会查找 `/home` 目录下所有过去7天内修改过、大小超过1MB、并且属于用户 `john` 的普通文件: ```bash find /home -type f -mtime -7 -size +1M -user john ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值