今天做了個小實驗,由於自己的考慮不全面,導致了大問題的產生!
因爲此問題我在全網幾乎都未找到滿意的答案,所以現在打算分享出來!
問題原因:
#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