脚本异常导致产生了大量的小文件使得inode被耗尽磁盘只读了,删除的时候如果直接用 rm -f ./* 来删除会报错参数过多,这里记录下可行的删除方法。
基于 xargs 命令一次传递少量参数来删除
-n 900 是指定 xargs 命令一次处理的参数数量,这里指定为 900。此命令将当前目录下的文件和目录作为参数传递给 xargs 命令,每次处理 900 个参数,然后将这些参数传递给 rm 命令进行删除操作。
[root@imzcy ~]# cd /var/spool/postfix/maildrop/ [root@imzcy maildrop]# ls |xargs -n 900 rm
文件名包含特殊符号时的处理方法
- -type f 表示只查找普通文件(不包括目录、符号链接等)。
- -print0 是将找到的文件以 null 字符 (\0) 分隔输出,以支持处理包含空格等特殊字符的文件名。
xargs -0 rm 是将上一步找到的文件作为参数传递给 rm 命令,从而删除这些文件(-0 选项告诉 xargs 使用空字符作为参数分隔符,与 find 命令的 -print0 选项匹配。rm 命令用于删除文件。)。
[root@imzcy ~]# find /var/spool/postfix/maildrop -type f -print0 | xargs -0 rm
本文采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。
如果您的问题未解决,欢迎微信扫描右侧二维码与我联系。