制作与模式匹配的多个文件的备份副本

时间:2012-10-30 09:03:48

标签: shell backup

我有文件:x0001_test.xml z0054_test.xml k5487_test.xml ....

我想保存他们,例如:cp *_test.xml ${BEGINNING}_test.xml.SAVE

bash脚本中是否有一种方法可以为每个文件存储*的内容,以便在之后重新注入?或者我应该使用循环?

2 个答案:

答案 0 :(得分:1)

执行此操作的循环可能非常简单,不需要单独的单行命令。您不需要保存文件名的部分,因为您只是将.SAVE添加到整个事物中:

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

而且,无论如何,如果你真的想要,你可以在一行中完成:

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

答案 1 :(得分:0)

@paxdiablo给了你最直接的答案。另外几个选项

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

这假设您有GNU xargs,并且find命令可以在子目录中找到匹配的文件。