解压时在 Bash 脚本中创建多个目录

解压时在 Bash 脚本中创建多个目录

我在 Ubuntu 中使用 Bash 脚本。我有几个.mbz文件,基本上都是zip files这样,所以我想用tar.我如何用循环压缩它们并为每个文件创建一个目录。

例如,这就是我对一个文件所做的事情

mkdir course4444 tar -xvzf course4.mbz -C course4444 cd course4444 tar -cvzf course4444.mbz *

但是,我有超过 6 个 .mbz 文件,因此我希望每个文件都有一个目录。

答案1

我不是 mbz 文件方面的专家。但如果只是对多个文件执行某些操作,您可以使用此模式。

for mbzfile in course01.mbz course02.mbz c3.mbz c4.mbz c5.mbz c6.mbz; do
     echo "file : $mbzfile"
done

将打印:

file : course01.mbz
file : course02.mbz
file : c3.mbz
file : c4.mbz
file : c5.mbz
file : c6.mbz

这意味着你会这样做:

for mbzfile in course01.mbz course02.mbz c3.mbz c4.mbz c5.mbz c6.mbz; do
     mkdir "${mbzfile%%.mbz}"
     tar -xvzf "$mbzfile" -C "${mbzfile%%.mbz}"
     cd "${mbzfile%%.mbz}"
     tar -cvzf "$mbzfile" *
done

尽管我不清楚最后一个tar命令应该做什么(因为您谈到提取内容,而这会重新创建一些内容。

相关内容