rm 利用 ls -l, grep, awk 命令删除指定时间创建的文件或目录

rm 利用 ls -l, grep, awk 命令删除指定时间创建的文件或者目录

ls -l | grep time | awk '{printf "%s ", $column}' | xargs rm

其中:
time : time 是需要改写成指定时间的参数。如: 2017-07-31
"%s " : %s 后面有一个空格,不然提取出来的文件名都会连接在一起
$column : column 是文件名所在的域。从 1 开始数


另外:
ls -l : 显示当前目录下所有文件的时间信息
grep: 在文本文件中搜索指定的内容并把所在的行打印出来的命令(其他操作请自行搜索);
awk:把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理(此处的作用是提取出 grep 命令输出的所有文件或者目录名并以空格分隔)
xargs:读取 stdin, 把格式化的数据传递给命令(用于不支持 “|” 管道来传递参数的命令)
rm:删除文件或目录的命令( -r: 递归删除,使其能够删除目录; -v: 显示删除的过程)


示例:

-rw-r--r-- 1 root root 0 2017-07-31 15:04 1
-rw-r--r-- 1 root root 0 2017-07-31 15:04 2
-rw-r--r-- 1 root root 0 2017-07-31 15:04 3
-rw-r--r-- 1 root root 0 2017-07-31 15:04 4
-rw-r--r-- 1 root root 0 2017-07-31 15:05 5

以上示例中的 文件名 在第 8 个域(1,2,3…是文件名), 每一个域(列)是按照空格分隔的;

  • 删除 15:04 分创建的文件或者目录。
ls -l | grep 15:04 | awk '{printf "%s ", $8}' | xargs rm -rv
  • 删除 2017-07-31 当天创建的所有文件或者目录。
ls -l | grep 2017-07-31 | awk '{printf "%s ", $8}' | xargs rm -rv
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值