您的位置:首页 > 运维架构 > Linux

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

2017-07-31 15:53 671 查看
rm 利用 ls -l, grep, awk 命令删除指定时间创建的文件或者目录

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


其中:

time : time 是需要改写成指定时间的参数。如: 2017-07-31

“%s ” : %s 后面有一个空格,不然提取出来的文件名都会连接在一起

$column : column 是文件名所在的域。

另外:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux rm awk grep
相关文章推荐