在linux如何批量删除多级目录下同一格式的文件呢?

在linux如何批量删除多级目录下同一格式的文件呢?,第1张

在linux批量删除多级目录下同一格式的文件,可采用find

+

exec命令组合:

如在删除old目录下的,所有子目录中,后缀为.l的文件方法为:

find

old

-type

f

-name

"*.l"

-exec

rm

-f

{}

\

说明:

old:待查找的开始目录,搜索其下的子目录

-type

f

:

文件类型为普通文件

若查找的目标文件是目录,则用

-type

d

-name

"*.l"

:

表示文件名与"*.l"匹配,双引号不能少!

rm

-f

{}

:

删除时,不提示,{}表示查找到的文件

Linux删除文件夹命令是rmdir。

rmdir

使用权限:于目前目录有适当权限的所有使用者。

使用方式:rmdir dirName。

参数:-p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

说明: 删除已建立的目录。

范例:

1、将工作目录下,名为AAA的子目录删除:rmdir AAA。

2、在工作目录下的BBB目录中,删除名为Test的子目录。若Test删除后,BBB目录成为空目录,则BBB亦予删除 :rmdir -p BBB/Test。

创建文件夹命令:

mkdir

使用权限:于目前目录有适当权限的所有使用者。

使用方式:mkdir dirName。

参数:-p确保目录名称存在,不存在的就建一个。

说明:建立名称为dirName之子目录。

范例:

1、在工作目录下,建立一个名为AAA的子目录:mkdir AAA。

2、在工作目录下的 BBB 目录中,建立一个名为Test的子目录。若 BBB目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。):mkdir-p BBB/Test。

可以直接写脚本,每天定时删除:

例如:(删除/data/bak目录下以20开头,后缀为*.jar.gz,更改时间距现在5天以前的所有文件,也就是说只保留最近5天的备份文件)

find /data/bak -name "20*.jar.gz" -type f -mtime +5 -exec rm {} \>/dev/null 2>&1

/data/bak 备份目录(改成你自己的)

2010*_bak.gz 文件名及类型 (改成你自己的,注意*)

-type f表示查找普通类型的文件,f表示普通文件。

-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 。

-exec rm {} \ 表示执行rm命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。

/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的&表示让该命令在后台执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8432305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存