Linux系统下快速删除某个目录下大量文件
发布时间:2025-05-17 02:16:17 发布人:远客网络
一、Linux系统下快速删除某个目录下大量文件
1、不管是哪个操作系统,同一级目录存在太多的文件都是一件可怕的事情,不管是读取还是删除的时候。
2、一旦这种不幸的事情发生在你身上,而又不能完全把整个目录删掉怎么办呢?
3、你可以用 rm-f*.log但是你马上就会收到一个出错信息:参数列表太长
4、一个小时以前我一直还是缩小通用匹配符的范围,例如我依次的执行
5、非常费劲,如果这样还不行可以还要继续细化通配符,这样要删除所有log文件可能需要一整天时间。
6、废话那么多,其实只需要一个命令就可以搞定
7、刚把一个包含几万个文件的目录干掉(/var/log/samba),试试看。
8、注:用rm-fr(路径+要删文件)也可以。
二、在Linux系统中批量删除多个文件的方法总结
当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm-rf*就不太好用,因为要等待很长一段时间。在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
1. rsync安装,有些系统默认安装有该命令
复制代码代码如下:sudo yum install rsync
其他的可以源码安装,到下面的网站下载
2. rsync提供了一些跟删除有关的参数
2. rsync提供了一些跟删除有关的参数
--del an alias for--delete-during
--delete delete extraneous files from destination dirs
--delete-before receiver deletes before transfer, not during
--delete-during receiver deletes during transfer(default)
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not during
--delete-excluded also delete excluded files from destination dirs
--ignore-errors delete even if there are I/O errors
--max-delete=NUM don't delete more than NUM files
其中--delete-before接收者在传输之前进行删除操作
rsync--delete-before-d-a-H-v--progress--stats/data/blank//var/edatacache/
rsync--delete-before-d/data/blank//var/edatacache/
这样/var/edatacache目录就被快速的清空了。
这样/var/edatacache目录就被快速的清空了。
–delete-before接收者在传输之前进行删除操作
–progress在传输时显示传输过程
-a归档模式,表示以递归方式传输文件,并保持所有文件属性
-d transfer directories without recursing
如果大量小文件都集中在几个目录中,那么这个方法就有用了。
将会强制删除/var/log/httpd/access.log这个文件
-r就是向下递归,不管有多少级目录,一并删除
-f就是直接强行删除,不作任何提示的意思
提示:使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
使用这个rm-rf删除文件的时候一定要格外小心,linux没有回收站的。
将子目录及子目录中所有档案删除
总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 2 root root 4096 10-26 14:51 test1
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm-r test1
rm:是否删除一般文件“test1/log3.log”? y
总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
把子目录及子目录中所有档案删除,并且不用一一确认
[root@localhost test]# rm-rf test2
总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
三、Linux系统快速删除旧文件的技巧linux删除旧文件
在实际开发过程中,会经常出现大量未使用的文件,存在于服务器上,服务器上的磁盘会逐渐被塞满,从而影响新文件的存储和旧文件的物理安全。要解决这类问题,Linux系统可以通过一些技巧快速删除过期文件,释放硬盘空间。下面我们就一起来看看Linux系统快速删除旧文件的技巧。
1.使用 rm-f命令。rm-f命令是最快速删除文件的方法,但是要小心错误处理,避免将重要文件删除。这个命令有一个-f参数,可以强制删除文件,即使在没有访问权限的情况下,也可以删除文件,示例:rm-f文件名。
2.使用 find命令。find命令有很多参数来安全删除文件,如果你想删除某个文件的话可以使用-inum参数指定文件inode号来进行搜索: find.-inum inode号-exec rm-f{}\;.
3.使用xargs命令。Xargs命令能够高效的处理大量文件,并且可以同find命令配合使用。find命令用于查找大量文件,xargs命令用于执行指定的操作,示例: find/dir/-name“*.log”| xargs-I{} rm-f{}。
4.使用 for循环和 rm命令。循环可以非常方便的处理大量文件,它会按照预定义的文件进行循环删除,示例:for file in `ls*.log`; do rm-rf$file; done.
最后, Linux系统快速删除旧文件的技巧要熟记,方便快速删除过期文件,释放硬盘空间,安全管理服务器文件,确保系统安全。