如何在Linux服务器上批量删除名字乱码的空白文件?
我们运维或者开发、测试用的Linux服务器上有时会遇到一堆名字为乱码、文件大小为0的空白文件,类似如下这样:
部分是由于使用 rz 命令上传文件失败时产生的,部分是用户进程发生异常时产生的。这些名字乱码的文件没有用处,而且看着碍眼,会影响使用者进行运维或测试操作。对于有点洁癖的我们,想必都是删之而后快。
显然我们无法正常键盘打字输入这些乱码文件名,这时我们可以复制文件名再粘贴在命令 rm -f 之后再回车删除,但是这样复制文件名容易少一部分导致删除失败,或者按照i节点号来明确地删除指定文件:
先查看文件的 i 节点号
再使用 find 命令执行删除操作
可是在面对大量类似文件名乱码的文件时,这样操作明显效率低下,不符合我们的需求。
显然我们需要一种能批量删除此类文件的命令。
由于此类乱码文件的大小都为0,于是我们可以用 find 命令查找筛选出来,再进行删除处理。
find . -type f -size 0 -delete
如果当前目录下含有子目录且子目录中包含有用处且大小为0的文件,则上述命令会导致误删。我们可以使用命令
find . -maxdepth 1 -type f -size 0c -delete
来限制 find 的最大深度,避免误删子目录下的文件。
参考文档:
相关阅读: