2012-10-30 94 views
1

備份副本,我所擁有的文件:x0001_test.xml z0054_test.xml k5487_test.xml ....做的幾個文件匹配模式

我想救他們做這樣的事情:cp *_test.xml ${BEGINNING}_test.xml.SAVE

在bash腳本中是否有一種方法來爲每個文件存儲*的內容以重新注入它?或者我應該使用循環?

回答

1

一個循環可能足夠小,不需要單獨的單行命令。你並不需要保存的文件名的部分因爲你剛剛增加.SAVE整個事情:

for fspec in *_test.xml; do 
    cp "${fspec}" "${fspec}.SAVE" 
done 

,並在任何情況下,你可以在一行做,如果你真想:

for fspec in *_test.xml; do cp "${fspec}" "${fspec}.SAVE" ; done 
+0

好的,謝謝paxdiablo! – Maxbester

0

@paxdiablo給你最直接的答案。另一對夫婦的選擇

printf "%s\0" *_test.xml | xargs -0 -L1 -I{} cp {} {}.SAVE 
find . -name \*_test.xml -exec cp {} {}.SAVE \; 

這裏假設你有GNU xargs的,並且find命令可能會發現在子目錄中搜索匹配的文件。