linuxfind查找字符串大于多少天的文件,并删除之

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
丰衣足食, 积分 678, 距离下一级还需 322 积分
论坛徽章:1
[root@node02 relay]# cd /data/log/4001/dblogs/relay/; find ./ -type f -cmin -15
[root@node02 relay]# cd /data/log/4001/dblogs/relay/; find ./ -type f -cmin -15 |xargs du -ck&&
24& && &total
[root@node02 relay]#
从上面可以看到,/data/log/4001/dblogs/relay/目录下最近15分钟发生过变化的文件是没有的,但是我加上xargs du -ck后,结果是24K,
请问这个24K是如何算出来的呢?为什么不是0呢?
论坛徽章:203
你单独运行du -ck看一下
命令格式:
du [选项][文件]
2.命令功能:
显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all&&显示目录中个别文件的大小。& &
-b或-bytes&&显示目录或文件大小时,以byte为单位。& &
-c或--total&&除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes&&以KB(1024bytes)为单位输出。
-m或--megabytes&&以MB为单位输出。& &
-s或--summarize&&仅显示总计,只列出最后加总的值。
-h或--human-readable&&以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem&&以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L&符号链接&或--dereference&符号链接& 显示选项中所指定符号链接的源文件大小。& &
-S或--separate-dirs& &显示个别目录的大小时,并不含其子目录的大小。
-X&文件&或--exclude-from=&文件&&&在&文件&指定目录或文件。& &
--exclude=&目录或文件&& && && &略过指定的目录或文件。& &
-D或--dereference-args& &显示指定符号链接的源文件大小。& &
-H或--si&&与-h参数相同,但是K,M,G是以1000为换算单位。& &
-l或--count-links& &重复计算硬件链接的文件。&&
富足长乐, 积分 7974, 距离下一级还需 26 积分
论坛徽章:12
本帖最后由 phanx 于
10:51 编辑
& & 因为当 find 没有找到任何文件的时候,传给xargs du -ck 就是一个空行,相当于直接执行 du -ck 命令。
也就是说在cd /data/log/4001/dblogs/relay/ 后,&&相当于在 /data/log/4001/dblogs/relay 这个目录下执行 du -ck 命令。
du的对象也就是目录本身了。
正确的写法是 cd /data/log/4001/dblogs/relay/; find ./ -type f -cmin -15 |xargs -r&&-n1 du -ck&&
-r& &&&If&&the standard input does not contain any nonblanks, do not run the command.&&Normally, the command is run once even if there
& && && && &&&is no input.&&This option is a GNU extension.Linux/Unix&怎样找出并删除某一时间点的文件
在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢?
Linux/Unix提供了find 操作系统命令,使用该命令可以实现我们的目标。
&&& $man find
可以查看find命令的使用方法。
1. 找出 n 天前的文件
/temp/ -type f -mtime +n -print
&&&&注:/temp/&指出寻找/temp/目录下的文件
-type f&指出找系统普通文件,不包含目录文件
-mtime +n 指出找 n*24 小时前的文件
-print 将找出的文件打印出来
如:找出 7 天前的文件
&&&&&$find
/temp/ -type f -mtime +7 -print
找出 3 天前的文件
find /temp/ -type f -mtime +3 -print
找出并删除&7 天前的文件
/temp/ -type f -mtime +7 -print -exec rm -f {} \;
&&& 注:-exec
指出要执行后面的系统命令
rm -f 删除找出的文件
{} 只有该符号能跟在命令后面
&&&&3.&也可以使用
xargs&代替 -exec
/temp/ -type f -mtime +7 -print |&xargs rm -f
find命令用途举例:
查找/var下最大的前10个文件:
  $ find /var -type f -ls | sort -k 7 -r -n | head -10
  * 查找/var/log/下大于5GB的文件:
  $ find /var/log/ -type f -size +5120M -exec ls -lh {} \;
  * 找出今天的所有文件并将它们拷贝到另一个目录:
  $ find /home/me/files -ctime 0 -print -exec cp {}
/mnt/backup/{} \;
  * 找出所有一周前的临时文件并删除:
  $ find /temp/ -mtime +7-type f | xargs /bin/rm -f
  * 查找所有的mp3文件,并修改所有的大写字母为小写字母:
&&& $ find
/home/me/music/ -type f -name *.mp3 -exec rename 'y/[A-Z]/[a-z]/'
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。如何用find命令查找大于50M的文件_百度知道
如何用find命令查找大于50M的文件
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
IT类认证行家
采纳数:13845
获赞数:8948
个人出版图书《玩转Python网络爬虫》
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。命令格式:find 路径 命令参数 [输出形式]需要使用的参数:-size [+|-]n[cwbkMG] 查找文件打下为n文件。大小之后的字母表示单位,b-块(512字节)、 c表示字节、w-字(2字节)、k-千字节、M-兆字节、G-吉字节,单位的默认值为b。加号表示大于指定大小,减号表示小于指定大小。如果需要查找介于两个大小之间的文件,可以重复设置-size参数两次,一次使用加号+指定大于某一大小,一次使用减号-指定小于某一大小。用法示例:查找HOME目录下大于1M小于10M的文件$ find ~ -size +1M -size -10M
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。页面不存在_百度搜索
很抱歉,您要访问的页面不存在!
温馨提示:
请检查您访问的网址是否正确
如果您不能确认访问的网址,请浏览页面查看更多网址。
回到顶部重新发起搜索
如有任何意见或建议,请及时。查看:11291|回复:11
中级工程师
如何用find查找两天以前的文件!网上看了很多文章,然后操作了。感觉差距蛮大。
中级工程师
[root@server test]# find . -mtime +2&&
[root@server test]# ls -l
-rw-r--r-- 1 root root 0 3月&&20 21:12 1.txt
-rw-r--r-- 1 root root 0 3月&&17 00:00 2.txt
-rw-r--r-- 1 root root 0 3月&&16 00:00 3.txt
-rw-r--r-- 1 root root 0 3月&&18 00:00 4.txt
-rw-r--r-- 1 root root 0 3月&&19 00:00 5.txt
[root@server test]# find . -mtime 2&&
中级工程师
突然明白了。+2是不包括两天当天的。-2是两天之内的
中级工程师
[root test]# ll
-rw-r--r--. 1 root root 0&&3月 17 00:00 1.txt
-rw-r--r--. 1 root root 0&&3月 18 00:00 2.txt
-rw-r--r--. 1 root root 0&&3月 19 00:00 3.txt
-rw-r--r--. 1 root root 0&&3月 20 00:00 4.txt
[root test]# find . -mtime +2
距离现在2天以前就是用+2
Just For Fun
引用:原帖由 周福金 于
22:12 发表
突然明白了。+2是不包括两天当天的。-2是两天之内的 就是这个意思。
Just For Fun
中级工程师
引用:原帖由 Shell_2015 于
22:34 发表
就是这个意思。 谢谢了。呵呵。我脑子比较慢
印象中,加减是和当前系统时间相关的。
譬如现在是3月22号12点,那么-1包括21号14点的,但是不包括21号10点的。
很久没用了,可能记错,楼主再测试下吧。
中级工程师
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
中级工程师
引用:原帖由 金兔儿 于
07:14 发表
印象中,加减是和当前系统时间相关的。
譬如现在是3月22号12点,那么-1包括21号14点的,但是不包括21号10点的。
很久没用了,可能记错,楼主再测试下吧。 ... 版主说的对
助理工程师
不错。学习了
中级工程师
引用:原帖由 风行SUI 于
11:35 发表
不错。学习了 呵呵。相互学习

我要回帖

更多关于 linuxfind查找文件夹 的文章

 

随机推荐