现在的位置: 首页我爱Linux>正文
Argument list too long问题临时解决办法
发表于8年前 我爱Linux 评论数 3 ⁄ 被围观 4,927 次+

服务器上/tmp下面生成了太多的缓存文件,想把它给删掉,不过出现了Argument list too long 的问题,现在贴出来,以供备忘.

1.文件太多,本想直接rm,出现 -bash: /bin/rm: Argument list too long

rm /tmp/also-english.cache* -f
-bash: /bin/rm: Argument list too long

2.这样不行,那就看看有多少个文件吧,不过有出现了 -bash: /bin/ls: Argument list too long

ls /tmp/also-english.cache* |wc -l
-bash: /bin/ls: Argument list too long
      0      

3.上面那种方法看不到文件数目,那就用一种巧妙的方法吧, ls 再按两次 Tab键 就可以了,如下,就表示有138414个以also-english.cache开头的文件,然后根据提示再按一个"y" ,看看cache文件的格式是哪样的.

ls /tmp/also-english.cache
Display all 138414 possibilities? (y or n)

4.删除cache文件,服务器上的cache文件also-english.cache 后面都是以数字结尾的,所以使用以下方法来删除.(原理就是,一次不能删太多的文件,那么就分开来删除,)呵呵!临时的办法.

for ((i=100;i<999;i++));do  rm -f also-english.cache$i*;done

目前有 3 条留言 其中:访客:2 条, 博主:1 条

  1. jaysonzhang : 2012年05月04日13:59:57  -49楼 @回复 回复

    个人觉得用find . -name 方式结合xargs rm方式会更简便点

    • 夜舞 : 2012年05月04日17:39:36 @回复 回复

      呵呵,用你的方法试了一下
      /tmp# find . -name also-english.cache* |xargs -i rm -f {}
      -bash: /usr/bin/find: Argument list too long
      还是会出现这个错误

  2. kucubai : 2012年10月23日18:40:11  -48楼 @回复 回复

    find /tmp -name “also-english.cache*” -exec rm {} \;

    💡 💡

给我留言

留言无头像?