argument list too long 错误的处理
今天,在处理session文件过多,想要删除session文件,
执行删除session文件的命令:
sudo rm -rf ci_session*
结果出现:
/bin/rm: argument list too long
也就是使用正则匹配,文件的列表过多,导致的问题,解决方案:
通过google的 stackoverflow 平台,找到问题的解决方案:
find /tmp/ -name "ci_session*" -print0 |xargs -0 rm
命令的解释:
Linux命令:find
find 目录名称 -name "文件名"
会打印出在目录中符合-name 文件名的文件列表
扩展:
Linux删除文件有很多种方法:
对于上述的方法,一般都是可以能够实现数据的删除的,最近在清楚服务器垃圾文件的时候,遇见了一个问题;
公司的demo服务器运行了将近两年;在目录/var/spool/mqueue-client 目录下有将近60多万个文件夹
是由于系统在运行cron等一些任务的时候产生的文件夹
最终采用上述方式也解决不了。
在解决问题的时候,我在想:
如果我使用mv /var/spool/mqueue-client /var/spool/tmp 执行此命令的时候,
ls -al /var/spool/tmp
发现在mv的过程当中,/var/spool/tmp 中的文件是慢慢的增加的,
那么在/var/spool/tmp 还没有完全和/var/spool/mqueue-client 数据一致的时候,我直接执行:rm -rf /var/spool/tmp 会有什么效果呢?
如此执行,最后的结果:OK
顺利清除了这个比较大的文件夹;
在解决这个问题的时候,中间出现了好多的插曲,比如对于/var/spool/mqueue-client文件夹的权限等;
s:具有x权限
S:不具有x权限
如果上述问题出现:
rm: cannot remove 'you-get/tmp': Directory not empty
这种类似的提示,请参考文章:https://www.cnblogs.com/bing-yu12/p/11640759.html