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

当我们想要删除Linux系统中数千、数十万甚至数百万个文件时,使用rm-rf*并不容易,因为我们需要等待很长时间。
这种情况,我们可以使用Linux系统命令rsync来高效处理。
rsync实际上使用了替换原理,可以处理数十万个文件并在几秒钟内删除它们。
1、rsync安装,有些系统默认安装了这个命令:代码如下:sudoapt-getinstallrsyncfedora系统:代码如下:sudoyuminstallrsync其他可以访问以下网站安装下载http://rsync.samba.org2.rsync添加与删除相关的一些参数rsync--help|grepdelete--delanaliasfor--delete-during--deletede从目标目录删除其他文件-接收前删除、传输前删除、不在期间-接收期间删除、传输期间删除(默认)-删除延迟、期间查找删除、之后删除-传输后接收后删除、notwhile--delete-excludesodeleteexcludedfilesfromdestinationdirs--ignore-errorsdeleteevenif有I/O错误--max-delete=NUM不要删除超过NUM个文件其中--delete-before接收者在传输前执行删除操作3.清除目录或文件示例如下:1.首先创建一个空目录,代码如下:mkdir/data/blank2.代码如下使用rsync删除目标目录为:rsync--delete-before-d-a-H-v--progress--statistics/data/blank//var/edatacache/或代码如下:rsync--delete-before-d/data/blank//var/edatacache/这样/var/edatacache目录就会很快被清空。
选项说明:-delete-before接收方在传输前执行删除操作-传输时启动传输过程显示-a归档模式,这意味着递归传输文件并保留所有文件属性-h保留硬连接的文件-v详细输出模式-statistics给出某些文件的传输状态-dtransferdirectorieswithoutrecursingDeletefolders如果有大量小文件,该方法很有用集中在几个目录中。
代码如下: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命令删除文件夹下的文件.保留文件夹.

你可以写find/var/woll/cion-path"/var/woll/cion/*/lib/*"|xargsrm-rf,它只会删除路径/var/woll/cion/*/lib/下的所有内容文件而不删除/var/woll/cion/*/lib目录本身(*表示合并不同的目录)