Benjamin

静以修身,俭以养德,非澹薄无以明志,非宁静无以致远。
随笔 - 386, 文章 - 0, 评论 - 196, 引用 - 0
数据加载中……

linux find命令用法

在当前工作目录中查找名称为test.c的所有文件-----find test.c
查找/ home目录下的所有文件,名称为test。find /home -name test
找到名称为test的所有文件,并在/ home目录中同时包含大写和小写字母。
find /home -iname test
在/目录中查找名称为test的所有目录。 
find / -type d -name test
在当前工作目录中查找名为test.PHP的所有php文件。
find type f -name test.php
查找目录中的所有php文件。 
find / type f -name "*.php"
查找权限为777的所有文件 
find / -name f -perm 0777 -print
查找所有文件未经许可777。
find / -name f ! -perm 0777 -print
找权限设置为644的所有SGID位文件。
find / -perm 2644
查找权限为551的所有Sticky Bit设置文件。
find / -perm 1551
查找(所有具有suid和sgid的文件)
find / -perm -2000 -o -perm -4000
查找具有SUID属性的文件
find / -type f -perm -4000 -exec ls -l {} \;
查找所有只读文件。
find / -perm /u=r
查找所有可执行文件。
find / -perm /a=x
查找所有777个权限文件,并使用chmod命令将权限设置为644
find / -type f -perm 0777 -print -exec chmod 644 {} \;
查找所有777个权限目录,并使用chmod命令将权限设置为755
find / -type d -perm 777 -print -exec chmod 755 {} \;
找到一个名为test.c的文件并将其删除
find / -type f -name "test.c" -exec rm -f  {} \;
查找和删除多个文件,如.mp3或.txt,然后使用。
find / -type f -name "*.txt" -exec rm -f {} \;
在特定路径下查找所有空文件。 
find / tmp -type  f -empty
将特定路径下的所有空目录归档。
find / tmp -type d -empty
要查找所有隐藏的文件,请使用以下命令。 
find /tmp -type f -name ".*"
在所有者root的/ root目录下查找名为test.c的所有或单个文件。
find / -user root -name test.c
查找~目录下属于用户neil的所有文件。 
find ~ -user neil
查找/ home目录下属于Group Developer的所有文件。 
find /home -group developer
查找~目录下的用户neil的所有.txt文件 
find ~ -user neil -iname "*.txt"
atime是指access time,即文件被读取或者执行的时间,修改文件是不会改变access time的。
ctime即change time文件状态改变时间,指文件的i结点被修改的时间,如通过chmod修改文件属性,ctime就会被修改
mtime即modify time,指文件内容被修改的时间
通过stat来查看文件的mtime,ctime,atime等属性,也可以通过ls命令来查看,具体如下:
ls -lc filename 列出文件的 ctime
ls -lu filename 列出文件的 atime
ls -l filename 列出文件的 mtime
find . –mtime n中的n指的是24*n, +n、-n、n分别表示:
+n: 大于n
-n:    小于n
n:等于n
find . –mtime n:  File waslast modified n*24 hours ago.
最后一次修改发生在距离当前时间n*24小时至(n+1)*24 小时
find . –mtime +n:
最后一次修改发生在n+1天以前,距离当前时间为(n+1)*24小时或者更早
find . –mtime –n:
最后一次修改发生在n天以内,距离当前时间为n*24小时以内
将/usr/local/backups目录下所有10天前带"."的文件删除
find /usr/local/backups -mtime +9 -name "*.*" -exec rm -rf {} \;
查找最近1小时内更改的所有文件 
find / -cmin 60
查找最近1小时内修改的所有文件。 
 find / -mmin 60
 
查找最近1小时内访问的所有文件
find /  -amin 60
要找到所有50MB的文件
find / -size 50M
找到大于50MB且小于100MB的所有文件。 
find / -size  +50M -size -100M
格式: find [path...] [expression]
find / -name access_log 2>/dev/null 不显示错误信息
find / -amin n ##查找系统中最后N分钟访问的文件
find / -atime n ##查找系统中最后n*24小时访问的文件
find / -cmin n ##查找系统中最后N分钟被改变状态的文件
find / -ctime n ##查找系统中最后n*24小时被改变状态的文件
find / -empty ##查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
find / -false ##查找系统中总是错误的文件
find / -fstype type ##查找系统中存在于指定文件系统的文件,例如:ext2 .
find / -gid n ##查找系统中文件数字组 ID 为 n的文件
Linux find命令指定时间范围查找文件&移动到某个目录&打包压缩存档
把当前目录下面的file(不包括目录),移动到/opt/shell
find  .  -type f  -exec mv {}   /opt/shell   \;
find .  -type f  |  xargs  -I  '{}'  mv  {}  /opt/shell
find多少天以前的文件,按时间移动,并分批打包
显示前十个文件
ls -1 | sort -u | head -10
1.首先查看文件个数,进入所在的文件
find . -name "*" | wc -l
或者
ll |grep "^-" |wc -l
2.查看文件个数
查看120天钱的文件个数
find . -mtime +120 | wc -l
一般如果是小文件,控制在10-20万左右。
解释:
-mtime +30 --设置时间为30天前;
-exec mv --查找完毕后执行移动操作;
3.按照时间移动到指定目录里
find . -mtime +90 -exec mv {} /var/tmp/date_90 \;
4.计算大小
du -sh date_90
大小一般控制在10-15G最好
5.压缩并打包
tar -zcvf date_90.tar.gz date_90/
找出并打包文件成 tar 包
find /dir/to/search/ -name "*.doc" -exec tar -rvf out.tar {} \;

posted on 2018-08-21 23:42 Benjamin 阅读(520) 评论(0)  编辑 收藏 引用 所属分类: linux


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理