Cancellare il contenuto di un tar.gz scompattato erroneamente

Alessandro Pagano

2 Gennaio 2007

Quante volte abbiamo digitato il comando tar per estrarre un archivio, e ci siamo accorti di averlo fatto in una directory sbagliata?

E se magari la “directory sbagliata” fosse una con un centinaio di files? Non serve imprecare, e rimboccarsi le maniche per cancellare i files giusti, ma basta dare un semplice comando in “pipeline”.

tar tfx .tar.gz | rm -fr (backtick) awk ‘{print $1}’ (backtick)
(attenzione: quando inserisco “backtick” intendo l’apice al contrario)

Grazie alle segnalazioni di TA e malex (che trovate sotto, tra i commenti) correggo il comando con:

tar tf – | while read filename; do rm -rf “$filename”; done

oppure più rapidamente (se non ci sono spazi nei filename):

tar tf – | xargs rm -rf

 

Vediamo nel dettaglio cosa stiamo facendo.
Nella prima istruzione, il parametro “t” di tar indica di non estrarre realmente l’archivio ma solo di leggerne il contenuto; quest’ultimo verrà mandato in “pipe” al comando successivo che rimuoverà solo i files contenuti nell’archivio in questione.

Un piccolo Script che migliorare sensibilmente la vita di un utente, incorso in un errore di scompattazione.
Il seguente “articolo” è stato inserito anche nel wiki dove troverete la sintassi esatta (con la corretta visualizzazione dei backtick)

Follow Me

Seguimi sui social per essere sempre aggiornato sulle mie attività!

Iscriviti alla Newsletter

Riceverai una mail ad ogni post pubblicato