我有文件:x0001_test.xml z0054_test.xml k5487_test.xml
....
我想保存他们,例如:cp *_test.xml ${BEGINNING}_test.xml.SAVE
。
bash脚本中是否有一种方法可以为每个文件存储*
的内容,以便在之后重新注入?或者我应该使用循环?
答案 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命令可以在子目录中找到匹配的文件。