在Linux系统中批量删除多个文件的方法总结

当我们想要删除Linux系统中数万、数十万甚至数百万个文件时,使用rm-rf*并不容易,因为我们要等待很长时间。
这种情况,我们可以使用Linuxrsync系统命令来巧妙处理。
rsync实际上使用了覆盖原理,可以在几秒钟内删除数十万个文件。
1、安装rsync,有些系统Ubuntu系统默认安装此命令:代码如下:sudoapt-getinstallrsyncfedora系统:代码如下:sudoyuminstallrsync可以安装下载http://rsync.samba.org2。
rsync提供了一些删除相关的参数rsync--help|grepdelete--delanaliasfor--delete-during--deletedeallow对于目的地中不需要的文件--delete-before接收者在传输之前删除,而不是在传输期间--delete-during-receiving、delete-during-transfer(默认)--delete-delay,搜索deleted-while、delete-after-收到后删除Letesaftertransfer,notduring--delete-excludedalsodeleteexcludedfilesfromdestinationdirs--ignore-errorsdeleteevenifthereareI/Oerrors--max-delete=NUMdon'tdeletemorethanNUMfileswhere--delete-before接收者在传输前执行删除操作3.删除目录或文件的示例如下:1.首先创建一个空目录,代码如下:mkdir/data/blank2、使用rsync删除目标目录,代码如下:rsync--delete-before-d-a-H-v--progress--stats/data/empty//var/edatacache/或代码如下:rsync--delete-before-d/data/blank//var/edatacache/这样/var/edatacache目录就会被清空迅速地。
选项说明:–Delete–传输前接收设备执行删除–传输过程中显示传输进度–Archive模式,即重复传输文件并保留所有文件属性–H保留硬连接的文件–vVerbose输出mode–提供有关某些文件传输状态的统计信息-dtransferdirectorieswithoutrecursingDelete文件夹。
如果有大量小文件集中在几个目录中,则此方法很有用。
代码如下:rm-f/var/log/httpd/access.log会强制删除文件/var/log/httpd/access.log。
-r表示向下迭代无论有多少层目录,都删除-f表示直接强制删除,不提示-i交互式删除。
提示:使用rm命令时要小心。
因为文件一旦删除就无法恢复。
为了防止这种情况发生,可以使用i选项来确认逐个删除文件。
如果用户输入y,该文件将被删除。
如果您输入其他内容,该文件将不会被删除。
使用rm-rf删除文件时要非常小心。
Linux没有回收站。
rm-r目录名:删除子目录及子目录下所有文件的代码如下:[root@localhosttest]#ls-lTotal24drwxr-xr-x7rootroot409610-2518:07scfdrwxr-xr-x2rootroot409610-2614:51test1drwxr-xr-x3rootroot409610-2517:44test2drwxrwxrwx2rootroot409610-2517:46test3drwxr-xr-x2rootroot409610-2517:56test4drwxr-xr-x3rootroot409610-2517:56test5代码如下:[root@localhosttest]#rm-rtest1rm:是否要进入“test1”目录?yrm:是否要删除全局文件“test1/log3.log”yrm:是否要删除目录“test1”代码如下:[root@localhosttest]#ls-lTotal20drwxr-xr-x7rootroot409610-2518:07scfdrwxr-xr-x3rootroot409610-2517:44test2drwxrwxrwx2rootroot409610-2517:46test3drwxr-xr-x2rootroot409610-2517:56test4drwxr-xr-x3rootroot409610-2517:56test5[root@localhosttest]#rm-rf目录名:删除子目录及子目录下所有文件,无需一一确认代码:[root@localhosttest]#rm-rftest2[root@localhosttest]#ls-lTotal16drwxr-xr-x7rootroot409610-2518:07scfdrwxrwxrwx2rootroot409610-2517:46test3drwxr-xr-x2rootroot409610-2517:56test4drwxr-xr-x3rootroot409610-2517:56test5[root@localhosttest]#

linux系统中的批量删除文件与空文件删除的命令介绍

Linux中删除文件或目录的rm(remove)命令

功能描述:删除文件或目录。

语法:rm[-dfirv][--help][--version][文件或目录...]

附加说明:运行rm命令删除文件或目录,如果要删除目录,需要添加“-r”选项,否则默认只删除文件。

选项:

-d或--directory直接将被删除目录的硬链接数据清为0,并删除该目录。

-f或--force强制删除文件或目录。

-i或--interactive在删除现有文件或目录之前提示用户。

-r或-R或--recursive递归处理,指定目录下的所有文件和子目录都会一起处理。

-v或--verbose显示指令的进度。

--help在线帮助。

如何在Linux中批量删除空文件(大小为0的文件)

代码如下

find.-name"*"-typef-尺寸0c|xargs-n1rm-f

使用此删除指令对于一定大小的文件,只需更改相应的-size参数即可,例如:

代码如下:

find.-name"*"-typef-size1024c|xargs-n1rm-f

这将删除1KB文件。
(但要注意不要使用-size1k。
这将导致使用1KB的空间,而不是1KB的文件大小)。

如果您只想删除文件夹、名称连接等,则可以相应地更改-type参数。
详情参见manfind。

删除N天前的文件

>

LINUX点击按时间批量删除文件(删除N天前的文件)

代码如下

find/opt/Oracle/admin/CCXE/bdump/-mtime+10-name"*.*"-execrm-Rf{};

/opt/Oracle/admin/CCXE/bdump/:任何要清理的目录

-mtime:标准运算符写法

+10:搜索10天前的文件。
这里的数字代表天数。
+30表示搜索30天前的文件。

“*.*”:要查找的数据类型。
*.jpg”表示搜索扩展名,所有名为jpg的文件,“*”表示搜索所有文件

-exec:固定写法

rm-rf:强制删除文件包括目录

{};:固定表示法,一对大括号+空格+/+;

彻底删除文件

有时候我们必须彻底删除它们对于某些文件,您可以使用shred命令,该命令是coreutils的一部分,因此该命令主要在Linux中可用。

shred如何彻底删除文件:

代码如下:

$shred-ufile

shred会覆盖文件一些随机内容节点和块数据,以及删除文件(-u参数)。

如果你想清理得更彻底,可以添加-z选项,即先用随机数据填充,然后再用零填充。

代码如下所示:

$shred-u-zfile

此外,shred还可以擦除整个分区或磁盘,例如,如果您。
想要彻底清除/dev/sdb1分区的内容。
你可以这样做:

$shred/dev/sdb1(注意不要添加-u选项)

详细的粉碎选项:

-f,--force更改权限以允许写入(如有必要)

-n,--iterations=N覆盖N次,默认3次

--random-source=FILE读取数据从指定的file

-s,--size=N将文件粉碎为固定大小(可以使用K、M、C等后缀)

-u,--remove覆盖后截断并删除文件

-v,--verbose显示进度

-z,--zero-add从0开始覆盖数据

–帮助显示help

--version显示版本信息