web-dev-qa-db-ja.com

アーカイブ後にファイルを自動的に削除するにはどうすればよいですか?

余分なファイルの例をアーカイブして削除するにはどうすればよいですか。

cd ~/Desktop && tar -cvf sitepack.tar ./

これは私に与えます

ls
Riva_Starr_Feat._Noze_I_Was_Drunk_Official_Video_HD_.mp3
Riva_Starr_feat._Sud_Sound_System_Orizzonti_Official_Vide.mp3
Riva_starr_I_was_drunk_Syskey_remix_.mp3
sitepack.tar

私が探しているのは

ls
sitepack.tar

それで、すべてをそのままにするのではなく、Zipにアーカイブしますか?

9
user1503606

GNU tarを使用している場合は、--remove-filesオプションを使用できます。

--remove-files

アーカイブに追加した後にファイルを削除する

ただし、移植性はありません。

tarにそれがない場合は、2つのステップで手動で行う必要があります。
tarファイルをパックするディレクトリに配置するのではなく、親ディレクトリに配置することをお勧めします。こうすることで、tarの実行後に単純にrm *(おそらく再帰的に)を実行できます。

13
Mat
 [max @ localhost zzz] $ touch 1 2 3 4 
 [max @ localhost zzz] $ ll 
 total 0 
-rw-rw-r-- 1 max max 0 Oct 18 16:13 1 
-rw-rw-r-- 1 max max 0 Oct 18 16:13 2 
-rw-rw-r-- 1 max max 0 10月18日16:133 
-rw-rw-r--1最大最大010月18日16:134 

アーカイブを作成するには、このコマンドを使用します

-c --------->アーカイブを作成する場合

 [max @ localhost zzz] $ tar -cvf max.tar 1 2 3 4 
 1 
 2 
 3 
 4 
 [max @ localhost zzz] $ ls -l max.tar 
-rw-rw-r--1 max max 10240 Oct 18 16:14 max.tar 

アーカイブの内容を一覧表示するには、次のコマンドを使用します

-t --------->アーカイブ内のすべてのファイルを一覧表示します

 
 [max @ localhost zzz] $ tar -tvf max.tar 
-rw-rw-r--max/max 0 2012-10-18 16:13 1 
- rw-rw-r-- max/max 0 2012-10-18 16:13 2 
-rw-rw-r--max/max 0 2012-10-18 16:13 3 
 -rw-rw-r-- max/max 0 2012-10-18 16:13 4 

抽出するには、このコマンドを使用します

-x --------->アーカイブから抽出するには

-v --------->冗長モードの場合

 [max @ localhost zzz] $ tar -xvf max.tar -C direc1 
 1 
 2 
 3 
 4 

ここで-Cはディレクトリdirec1にコンテンツを抽出します

アーカイブから単一のファイルを抽出するには、このコマンドを使用します

 [max @ localhost zzz] $ tar -xvf max.tar 1 -C direc1 
 1 
 
私の場合のファイルにアーカイブするファイル名を指定します名前は `1` 

[max @ localhost zzz] $ tar -cvf max.tar 1 2 3 4--remove-files

これにより、達成後に元のファイルが削除されます

1
max