在使用 Linux 的时候,有时会遇到某个文件夹下有大量的小文件。如:/tmp 目录。当你使用 rm 命令来删除的时候。可能会很慢,有时会报错。例如:
root@vz101:~# rm -rf *
-bash: /bin/rm: Argument list too long
那么,你可以试试使用 rsync 来删除文件。原理就是,使用一个空目录同步到目标文件,在同步前删除。(也可以使用 xargs 。)
先创建一个空目录:
mkdir /var/empty
将空目录同步到要目标目录:
rsync --delete-before -avH /var/empty/ /tmp/
不过要注意,目录的权限问题。上面的命令会将源目录的权限也同步过去。这样目标目录的权限就可能会发生改变。
尤其对于 /tmp 目录,不正确的目录权限会导致很多问题。我本人就曾经因为同步后 /tmp 目录的权限不对,导致 Centos 系统进不了桌面。/tmp 目录的权限为:
chmod 777 /tmp
chmod u+t /tmp
张贴您的评论