Linux下删除文件夹下的海量文件,有时候会报错:
Linux下通过 rm -f 删除大量文件时报错:Argument list too long
待删除文件中包含的小文件数量过多,通常是由于受到 shell 参数个数限制所致。
这个是Linux系统存在的限制,可以通过如下指令查看该参数值的配置:
getconf ARG_MAX
1 可以通过awk删除
###ls -l ${DATAPATH} | awk -v datapath="${DATAPATH}" '{print "echo "datapath"/"$9}'|sh
echo "STARAT DELETE FILE"
ls -l ${DATAPATH} | awk -v datapath="${DATAPATH}" '{
if ($9 != "") {
print "rm "datapath"/"$9
}
}'| sh
2 可以通过find结合xargs删除
find "${DATAPATH}/" -name "*" | xargs rm
推荐第二种方法