分类: 系统运维
2012-05-29 09:27:32
使用ls或mv *命令时, 产生"Arguments too long"或"Array list too long"的错误信息
用户的某个目录下有非常多的文件,当用户使用ls列示所有文件或使用mv * 命令想把所有文件移至另一目录时,系统报错,相应操作无法进行。错误信息为:"Arguments too long"或"Array list too long"。
解答 该错误的产生是由于/usr/include/sys/limits.h文件中ARG_MAX参数对应值的限制,最大值为24576,并且无法改变此限制。因此当某目录下的文件数超过24576时,可以使用下面的命令列示、删除或移动所有的文件:
1. 列示文件:
find -name "*" | xargs ls -l
2. 删除文件:
find . -name "*" |xargs rm {}
3. 移动所有文件至目标目录:
find -name "*" | xargs -I {} mv {}