zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    上机课前准备
    C# 跨线程访问控件的解决方法
    C# 异步和多线程的区别
    C# BeginInvoke和EndInvoke方法
    C# 委托的回调机制
    C# 什么是委托
    C# WebBrowser的控件使用
    C# 解决WebBrowser.DocumentCompleted事件的多次调用
    平台调用数据类型
    C# 创建快捷方式
  • 原文地址:https://www.cnblogs.com/bing-yu12/p/8399993.html
Copyright © 2011-2022 走看看