焦油在一条线上?

时间:2011-01-14 04:37:59

标签: tar

对于某些tar娴熟的人,我确信所有以下内容都可以在一行中实现?

mkdir site_media/media
cp fixtures/media.tar site_media/media/media.tar
cd site_media/media/
tar -xvf media.tar
rm media.tar 
cd ../../

3 个答案:

答案 0 :(得分:1)

如果您只是要删除副本,则无需复制tar文件。这将适用于您而无需复制,删除和更改目录:

mkdir site_media/media; tar -xvf fixtures/media.tar -C site_media/media

答案 1 :(得分:0)

喜剧回答:

mkdir site_media/media && cp fixtures/media.tar site_media/media/media.tar && 
cd site_media/media/ && tar -xvf media.tar && rm media.tar && cd ../../

答案 2 :(得分:0)

稍微严重一点:我不知道如何将基目录创建为单个tar的一部分,但可以稍微减少:

mkdir -p site_media/media
tar -xvf fixtures/media.tar -C site_media/media

这样可以避免首先避免删除。提取模式中的C选项意味着“打开存档后但在提取任何内容之前更改为此目录”。

正如@ Steve-o幽默地指出的那样,你可以将行与&&结合起来,这也会产生布尔短路:如果命令失败就停止。