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

 

 

  

posted @ 2018-02-01 17:04  -起风了🪐  阅读(1806)  评论(0编辑  收藏  举报