2011-01-14 69 views
1

對於一些熟練的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

不編程... – leppie 2011-01-14 04:52:18

+0

切線,我想。這看起來像是自動測試設置的一部分。 – 2011-01-14 04:53:57

回答

1

如果你只是要刪除副本,實際上不需要複製tar文件。這將適用於你沒有複製,刪除和改變目錄:

mkdir site_media/media; tar -xvf fixtures/media.tar -C site_media/media 
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 ../../ 
0

稍微更嚴重的:我不知道的一種方式來創建基本目錄爲單tar的一部分,但它可以一定程度上減少:

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

這避免了首先避免複製的刪除。提取模式下的C選項表示「在打開存檔但未提取任何內容之前更改爲此目錄」。

正如@史蒂夫o幽默地指出的那樣,您可以將行與&&相結合,這也具有布爾短路的效果:如果命令失敗則停止。