find命令-查找

find命令基本用法

find命令是Linux系统中用于在文件系统中搜索文件和目录的强大工具。它可以根据多种条件来筛选文件,包括文件名、文件类型、文件大小、文件修改时间等。

常见选项和参数

  • -name <filename>:按照文件名进行搜索。
  • -type <file_type>:按照文件类型进行搜索,其中<file_type>可以是f(普通文件)、d(目录)、c(字符设备文件)、b(块设备文件)、l(符号链接文件)等。
  • -size <size>:按照文件大小进行搜索,<size>可以用c(字节)、k(千字节)、M(兆字节)等单位表示。
  • -user <username>:按照文件所有者进行搜索。
  • -group <groupname>:按照文件所属组进行搜索。
  • -atime <n>:查找在过去n天内被访问过的文件。
  • -mtime <n>:查找在过去n天内被修改过的文件。
  • -ctime <n>:查找在过去n天内状态发生变化的文件(例如权限)。
  • -exec <command> {} \;:对找到的每个文件执行指定的命令。

示例

  • 查找当前目录下名为file.txt的文件:
find . -name file.txt

find / -type f -name filename.txt    查询某文件的路径
  • 将当前目录及其子目录下所有文件后缀为.c的文件列出来:
find . -name "*.c"
  • 查找/home目录下大于1MB的文件:
find /home -size +1M
  • 查找/var/log目录下在7天前修改过的文件:
find /var/log -mtime +7
  • 查找过去7天内被访问的文件:
find /path/to/search -atime -7
  • 在当前目录下查找最近20天内状态发生改变的文件和目录:
find . -ctime 20
  • 将当前目录及其子目录下所有20天前及更早更新过的文件列出:
find . -ctime +20
  • 查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} ;
  • 查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} ;
  • 查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} ;
  • 找并执行操作(例如删除):
find /path/to/search -name "pattern" -exec rm {} ;

思考 

 将/usr/local/test目录下大于100k小于500k的文件转移到/tmp目录下
find [路径] -type [类型] -exec [命令] '{}' \;
find /path/to/directory -type f -name "*.txt" -exec ls -l {} \
find / -name mysql -exec rm -rf {} \;查找mysql相关包然后删除
将/usr/local/test 目录下大于 100k 小于 500k的文件转移到/tmp 目录下 
cd /usr/local/test
find . -size +100k -size -500k -type f -exec mv {} /tmp \;
-exec mv {} /tmp \;对每个找到的文件执行 mv 命令,将其移动到 /tmp 目录
\; 是 find 命令的语法要求,表示 -exec 参数的结束
写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除。
#!/bin/bash
# 查找最后创建时间是3天前的,后缀是*.log的文件并删除
find /目录路径/ -ctime +3 -type f -iname "*.log" -exec rm -f {} \;

chmod +x 脚本名.sh
把当前目录小于108k的文件移动到/tmp下
find . -type f -size -108k -exec mv {} /tmp/ \;
查找3天以前访问过的文件并且拷贝他们到/backup目录下         
find / -atime +3  -exec  cp  {}  /backup  \;   
find / -atime  +3  |  xargs  cp  -i  {}   /backup 

根据访问修改更改时间查找文件 

如果服务器被入侵,你可以利用find 查询到近期被访问、修改、更改的文件

备注:min=分钟 time=天 修改注重于对内容的修改,更改注重于对权限的更改
atime(Access Time):文件最近被访问时间
mtime(Modify Time):文件最近内容修改时间
ctime(Change Time):文件最近权限和属性改变时间


# find . -amin -60 查找1个小时内被访问过的文件

# find / -atime -1 查找1天内被访问过的文件

# find . -mmin -60 查找在1个小时内被修改的文件

# find / -mtime -1 查找在1天内被修改的文件

# find . -cmin -60 查找1小时内状态被改变的文件

# find / -ctime -1查找1天内状态被改变的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值