我有文件:x0001_test.xml z0054_test.xml k5487_test.xml
....
我想保存他们做类似的事情:cp *_test.xml ${BEGINNING}_test.xml.SAVE
.
bash脚本中有没有办法存储*
每个文件的内容以便之后重新注入?还是我应该使用循环?
这样做的循环可能很简单,不需要单独的单行命令。您不需要保存文件名的一部分,因为您只是添加.SAVE
到整个内容中:
for fspec in *_test.xml; do
cp "${fspec}" "${fspec}.SAVE"
done
而且,无论如何,如果您真的想要,您可以在一行中完成:
for fspec in *_test.xml; do cp "${fspec}" "${fspec}.SAVE" ; done
@paxdiablo 给了你最直接的答案。另外几个选择
printf "%s\0" *_test.xml | xargs -0 -L1 -I{} cp {} {}.SAVE
find . -name \*_test.xml -exec cp {} {}.SAVE \;
这假设您有 GNU xargs,并且 find 命令可能会在子目录中找到匹配的文件。