Come posso rimuovere automaticamente i file dopo che sono stati archiviati?


6

Come posso archiviare e rimuovere l'esempio di file in eccesso.

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

questo mi darà

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

quando quello che sto cercando è

ls
sitepack.tar

quindi archivia tutto nella zip piuttosto che lasciarlo in posizione?

Risposte:


11

Se stai usando GNU tar, puoi usare l' --remove-filesopzione:

--remove-files

rimuovere i file dopo averli aggiunti all'archivio

Non è portatile però.

Se il tuo tarnon lo possiede, dovrai farlo manualmente, in due passaggi.
Ti suggerirei di non inserire il file tar nella directory che stai confezionando, ma di inserirlo nella directory principale. In questo modo puoi semplicemente rm *(possibilmente in modo ricorsivo) dopo aver tarfinito.


1
C'è sempre tar cvf <out-file> <in-files> | xargs rm -fanche rimuovere i file immediatamente dopo averli aggiunti se tar non supporta l'estensione GNU sopra.
Mark K Cowan,

1
[max @ localhost zzz] $ touch 1 2 3 4
[max @ localhost zzz] $ ll
totale 0
-rw-rw-r-- 1 max max 0 ott 18 16:13 1
-rw-rw-r-- 1 max max 0 ott 18 16:13 2
-rw-rw-r-- 1 max max 0 ott 18 16:13 3
-rw-rw-r-- 1 max max 0 ott 18 16:13 4

Per creare un archivio utilizzare questo comando

-c ---------> Per creare un archivio

[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 18 ott 16:14 max

Per elencare un contenuto di archivio usare questo comando

-t ---------> Elenca tutti i file nell'archivio

 
[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

Per estrarre utilizzare questo comando

-x ---------> Per estrarre dall'archivio

-v ---------> Per la modalità dettagliata

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

Qui -C estrae il contenuto nella directory direc1

Per estrarre un singolo file da archieve utilizzare questo comando

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

Dare il nome del file che si desidera archiviare nel mio caso il nome del file è `1`

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

Questo rimuoverà i file originali dopo aver raggiunto


Perché il trattino in "tar -cvf"? Non ha mai funzionato per me in Gnu Tar.
RonJohn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.