批量解压文件时保留名称吗?

批量解压文件时保留名称吗?

抱歉,这个问题很简单,但我无法让它工作:我有一个装满 .zip 文件的文件夹,每个 .zip 文件都只包含一个 .xml 文件。zip 文件有合理的名称,如 a.zip 等,而其中包含的 .xml 文件有一些“随机名称”.xml

现在我想解压文件夹中的所有 .zip 文件,保留 .zip 文件的名称,以便A.zip 解压后为A.xml, b.zip 到b.xml 等等...

我只能用以下命令实现批量解包:

for z in *.zip; do unzip "$z"; done 我该如何增强此功能以保留名称?

答案1

.xml假设您启动时该目录中没有任何文件并且每个目录.zip只有一个.xml文件,那么您可以这样做。

for z in *.zip; do
   unzip $z
   mv *.xml `echo $z | sed "s/\.zip$/.xml/"`
done

相关内容