我在 1 个文件夹中有多个 tar.gz 文件,每个 tar.gz 文件中都有 2 个名为“Cscf & Cscf2”的文件夹,每个文件夹又有 1 个 xml 文件。
所以我的要求是将 Cscf 文件夹中的 xml 文件复制到 1 个公共文件夹(ABC),将 Cscf2 文件夹中的 xml 文件复制到 1 个公共文件夹(XYZ)
答案1
我认为有更好的解决方案。但也许在出现更好的解决方案之前,它会对你有所帮助,你可以接受。在包含你的档案的文件夹中运行它。
for arc in ./*.tar.gz;
do
tar xvf $arc && \
mv $(echo $arc|sed 's/.tar.gz//')/Cscf/*.xml abc && \
mv $(echo $arc|sed 's/.tar.gz//')/Cscf2/*.xml xyz && \
rm -r $(echo $arc|sed 's/.tar.gz//');
done
arc
循环中的变量for
将保留每个.tar.gz
档案名称tar xvf $arc
将提取当前档案mv $(echo $arc|sed 's/.tar.gz//')/Cscf/*.xml abc
将.xml
文件从解压的档案Cscf
文件夹移动到abc
文件夹rm -r $(echo $arc|sed 's/.tar.gz//')
将删除解压的文件夹