免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 我叫萌萌
打印 上一主题 下一主题

[文本处理] 关于find 命令使用 -exec rm [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2016-04-10 06:20:00
11 [报告]
发表于 2016-08-23 16:32 |只看该作者
回复 8# 杰瑞26


不行  还是 提示:find: missing argument to `-exec'

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
12 [报告]
发表于 2016-08-23 17:07 |只看该作者
回复 10# 我叫萌萌


分批量 缩小范围删
如 先查看200天前,100天前... 数量有多大 再处理...

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2016-04-10 06:20:00
13 [报告]
发表于 2016-08-23 17:43 |只看该作者
回复 12# moperyblue


这不失为是个好办法  我先试试  
谢谢啦!

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2016-04-10 06:20:00
14 [报告]
发表于 2016-08-23 18:11 |只看该作者
回复 12# moperyblue


可不可以再优化一下  直接读取目录而不用通过list.txt

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
15 [报告]
发表于 2016-08-23 18:35 |只看该作者
回复 14# 我叫萌萌


list.txt是放已知目录
rm -rf 就可以递归删除了

find /dir -type d #这样就只查目录 条件自己再追加

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-08-14 06:20:00操作系统版块每日发帖之星
日期:2016-08-14 06:20:00每日论坛发贴之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-13 06:20:00IT运维版块每日发帖之星
日期:2016-08-13 06:20:00每日论坛发贴之星
日期:2016-08-12 06:20:00数据库技术版块每日发帖之星
日期:2016-08-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-12 06:20:00操作系统版块每日发帖之星
日期:2016-08-12 06:20:00综合交流区版块每日发帖之星
日期:2016-08-09 06:20:00
16 [报告]
发表于 2016-08-24 10:41 |只看该作者
本帖最后由 karma303 于 2016-08-24 10:43 编辑

借题主的帖子用一下。
lua shell:
$` cat lookup.lua
  1. #!/bin/lsh

  2. local dir = argv[1]                                --用户传的参数,即要执行删除操作的文件夹
  3. local files = lfs.collect(dir)        --调用lfs模块,搜集这个那个目录下的文件信息

  4. for i,file in pairs(files) do        --遍历操作
  5.         local days_ago = ( os.time() - file.attr.mtime ) / (24 * 60 * 60)
  6.         if file.attr.mode == "file" and days_ago > 30 then
  7.                 `ls  $(file.path)        -- ls 用来演示,换成 rm 是一样的。
  8.         end
  9. end
复制代码

$` ./lookup.lua /home/wws/lab/yanqi/src
  1. /home/wws/lab/yanqi/src/func_table.c
  2. /home/wws/lab/yanqi/src/proc.c
  3. /home/wws/lab/yanqi/src/schedule.c
  4. /home/wws/lab/yanqi/src/disp.c
  5. /home/wws/lab/yanqi/src/kernel.asm
  6. /home/wws/lab/yanqi/src/bugwall
  7. /home/wws/lab/yanqi/src/pmm.c
  8. /home/wws/lab/yanqi/src/i8259.c
  9. /home/wws/lab/yanqi/src/elf.c
  10. /home/wws/lab/yanqi/src/garbage.c
  11. /home/wws/lab/yanqi/src/fs_cell.c
  12. /home/wws/lab/yanqi/src/video_drv.c
  13. /home/wws/lab/yanqi/src/proc.asm
  14. /home/wws/lab/yanqi/src/bootinfo.asm
  15. /home/wws/lab/yanqi/src/ku_utils.c
  16. /home/wws/lab/yanqi/src/fork.c
  17. /home/wws/lab/yanqi/src/ramdisk.c
复制代码


论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2016-04-10 06:20:00
17 [报告]
发表于 2016-08-24 10:56 |只看该作者
回复 16# karma303


这个方法好  大神牛  不过 不能添加到crontab中  实现不了自动删除 的功能!

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-11-10 06:20:00IT运维版块每日发帖之星
日期:2016-07-19 06:20:00JAVA
日期:2016-10-25 16:03:37PHP
日期:2016-10-25 16:03:37Python
日期:2016-10-25 16:03:37
18 [报告]
发表于 2016-08-24 15:04 |只看该作者
回复 9# 我叫萌萌


dellog=". -maxdepth 1  ! -name \".\" -type f -name \"*.txt\" ! -mtime -30 |xargs rm -rf "

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2016-04-10 06:20:00
19 [报告]
发表于 2016-08-24 16:07 |只看该作者
本帖最后由 我叫萌萌 于 2016-08-24 16:09 编辑

回复 15# moperyblue


针对你提示的方案我修改了下:
#!/bin/bash
#需删除文件目录
var1="/usr/local/tomcat/logs/"
var2="/home/user/tomcat/logs"
var3="/usr/local/app/tomcat/logs"

var=`echo $var{1..3} |xargs -n 1`

for i in $var
do
find "$i" -maxdepth 1 -type f -name "*.txt"  ! -name "*.*" ! -mtime -30 -exec rm {} \;
done

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
20 [报告]
发表于 2016-08-24 16:27 |只看该作者
回复 19# 我叫萌萌


如果要删除的目录不多的话可以放在数组

  1. #!/bin/bash
  2. #需删除文件目录
  3. a=(/usr/local/tomcat/logs /home/user/tomcat/logs /usr/local/app/tomcat/logs)

  4. for i in "${a[@]}"
  5. do
  6. find "$i" -maxdepth 1 -type f -name "*.txt"  ! -name "*.*" ! -mtime -30 -exec rm {} \;
  7. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP