今天做了个小实验,由于自己的考虑不全面,导致了大问题的产生!
因为此问题我在全网几乎都未找到满意的答案,所以现在打算分享出来!
问题原因:
#ls 1.txt 2.txt 3.txt #find . -type f |xargs -i mv {} {}.bak
在根目录下有三个.txt的文档,我想一次性把它更改为 1.txt.bak 2.txt.bak 3.txt.bak
结果不小心使用了如上#find的那条命令!
结果导致整个根目录下所有的文件(包括隐藏文件)全部添加了.bak
重启系统后一定会出现问题!!!
尝试了很多次均失败告终,Goole上面也没有发现一个很好的解决方案!
之后想起了写个小的脚本,搞定,结果写错了,多亏了铭哥(Linux大神)帮忙指正,给出了solution!分享如下:
#for f in `find . -type f -name "*.bak"`; do f2=`echo $f|sed -r ‘s/.bak$//‘`; echo $f2;mv $f $f2; done
总结一下吧:
使用此命令,千万不能在根目录下直接操作!,保险起见,一定要输入特定的后缀名!
例如:
#find . -name ‘*.txt‘| xargs -i mv {} {}.bak
时间: 2024-11-05 11:53:40