有没有办法设置一个与创建 tar 存档的原始目录结构不同的目标目录结构,而无需手动创建?
例如,我在这样的目录结构中有许多文件:
~/yyyy/mm/dd/hh/mm/*.*
按文件接收时间排序。我已经创建了一个 tar 存档没有将上述目录结构保存为一整天的文件(我有一个小脚本,它循环遍历每小时的每一分钟并附加到单个 tar 存档中)。我想指定 tar 将存档提取到这样的目录结构中:
~/yyyymmdd
看起来很简单,因为我可以yyyymmdd
手动创建目录并将我的存档提取到其中,但我将这个 tar 存档提供给另一个系统(我无法控制),该系统依赖于将此 tar 存档提取到目录中yyyymmdd
,并且yyyy/mm/dd/hh/mm/*.*
目录结构可以提高我的性能,因为它是有序的。此外,在创建 tar 存档之前,我无法更改原始目录结构或浪费系统资源来创建所需的目标目录结构。
有没有一种简单的方法可以将 tar 档案提取到从未存在过的目录下?
答案1
如果你有这种结构
/主页/yyyy/mm/dd/hh/mm/ │ 目录1 │ │── 文件4 │ └── 文件5 │ 目录2 │ └── 文件6 │ │ 文件1 │ │ 文件2 └── 文件3
你想要这个结构
/home/yyyymmdd/ │ 目录1 │ │── 文件4 │ └── 文件5 │ 目录2 │ └── 文件6 │ │ 文件1 │ │ 文件2 └── 文件3
创造:
tar -cvf /tmp/archive.tar /home/yyyy/mm/dd/hh/mm/
提炼:
tar --strip-components=6 -C /home/yyyymmdd/ -xvf /tmp/archive.tar