linux删除大量文件时,报错 argument list too long
原因:删除数据量太大
解决办法 :
1.删除某个文件夹下 所有文件:
cd 到需要删除的文件夹内
#删除所有文件
ls | xargs rm -r
执行完后 可能有些文件删除不掉,再执行
find ./ * -exec rm -f {} \;
2.找到文件夹下 某些文件 删除:
cd 到需要删除的文件夹内
#找到所有 后缀为.temp 的文件,并删除
find ./ -name "*.temp" | xargs rm -rf "*.temp";
https://blog.csdn.net/kwame211/article/details/82019507
mv时报参数列表过长,
for i in *.m;do mv $i ${i%.m};done
于是求助于google,探索过程就省略了,直接说解决方法吧:
ls dir1 | xargs -t -I {} mv {} dir2/{}
这里的一对大括号是原文给的例子里用的,后来看了参数的用法,其实那对大括号是可以用任意字符串替换的,比如:
ls dir1 | xargs -t -I asdf mv asdf dir2/asdf
效果和大括号那一版是完全一样的,就是看起来有点儿不严肃。
需要说明的是,上面xargs的第二个参数,是大写的i,读作”爱“的那个字母,不是小写的L。至于参数的含义嘛,我忘了。