Linux 查找文件(find命令/locate命令)
根据文件的修改时间,删除5天前的文件。find命令还可以指定文件的类型。需要一个路径作为查找的范围。快速在指定范围内查找文件。xargs的作用就是可以。让命令行同时执行两条语句。
·
目录
一、find——快速在指定范围内查找文件
基本语法如下:
find 【option】【path】【expression】
例如:希望在/usr/bin/目录下查找zip文件:
find /usr/bin/ -name zip -print
从上面的例子我们可以看出以下三点:
find命令需要一个路径作为查找的范围,所以要查找整个文件系统的话,直接指定“/”即可。
-print表示将结果输出标准输出也就是我们看到的屏幕上。
-name选项指定了文件名,可以结合通配符使用,比如-name *.c就是列出该目录下的所有c程序文件。-name的还可以换成其他参数,如下:
示例1 将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
# find . -ctime 20 -print
补充:
-mtime +1 #表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime 1 #表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime 0 #表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime -1 #表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
示例2:如果出现权限不够,find前面加个sudo就可以了
如下就看到文件在哪里了:
find命令还可以指定文件的类型,在linux中,包括目录和设备都以文件的形式表现,可以使用-type选项来定位特殊的文件类型。例如在/etc/目录中查找名叫init.d的目录:
find /etc/ -name init.d -type d -print
-type后可跟的参数如下:
b | 块设备文件 |
d | 目录文件 |
c | 字符设备文件 |
f | 普通文件 |
p | 命名管道 |
l | 符号链接 |
s | socket |
find和xargs结合使用很方便:
//比如下面这条命令的意思就是找出名字为“202301”开头的文件,然后删除
sudo find -type d -name "202301*" -print0 |xargs -0 rm -rf
xargs的作用就是可以让命令行同时执行两条语句
比如这样子:
find / -perm +700 |ls -l #这个命令是错误的
find / -perm +700 |xargs ls -l #这样才是正确的
根据文件的修改时间,删除5天前的文件
find ./ -mtime +5 |xargs rm -rf
二、更快速地定位文件——locate命令
当用户完全不记得自己的文件放在哪里的时候。可以用locate命令示例:
locate *.ini
或者locate 文件名
搜索结果非常快。
locate工作原理:locate并没有进入到子目录搜索,而是通过检索文件名数据库来确定文件的位置。locate命令自动建立整个文件名数据库,不需要用户插手。
更多推荐
已为社区贡献2条内容
所有评论(0)