对于某些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 ../../
答案 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幽默地指出的那样,你可以将行与&&
结合起来,这也会产生布尔短路:如果命令失败就停止。