我有文件: x0001_test.xml z0054_test.xml k5487_test.xml
....
我想保存他们做以下操作: cp *_test.xml ${BEGINNING}_test.xml.SAVE
。
BASH脚本中是否有一种方法可以为每个文件存储*
的内容以在之后重新注射?还是我应该使用循环?
做一个循环可能足够微不足道,不需要单独的单行命令。您不需要保存文件名的部分,因为您只是将 .SAVE
添加到 thote thick:
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 " *_test.xml | xargs -0 -L1 -I{} cp {} {}.SAVE
find . -name *_test.xml -exec cp {} {}.SAVE ;
这是您假定您有GNU XARGS,并且查找命令可能会在子目录中找到匹配的文件。