使用ls或mv *命令时, 产生 "Arguments too long"或"Array list too long"的错误信息
环境
产品: AIX 平台: RS 软件版本: AIX V4
问题
用户的某个目录下有非常多的文件,当用户使用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 {}