Gestore / estrattore dell'archivio della riga di comando


15

Continuo a dimenticare tutti i comandi di estrazione corrispondenti per ogni formato di compressione.

Quindi stavo pensando di scrivere uno script che si limita a mappare le estensioni dei file al comando di estrazione appropriato. Ma credo che qualcosa del genere esista già, non riesco proprio a trovarlo.

Sarei felice con qualcosa come file-roller, ma file-roller è uno strumento GUI.

Risposte:


11

Un paio di suggerimenti:

UNP

unp (disponibile da software-center) è un piccolo modulo perl che decomprimerà un'ampia varietà di archivi nella cartella corrente. Utilizzare unp -sper i formati di archivio supportati

Per impostazione predefinita, decomprime gli archivi nella cartella corrente.

file-roller

il file-roller stesso può essere eseguito dalla riga di comando. Utilizzare file-roller -h <archive name>per decomprimere l'archivio.


11

Da qui , per inserire il tuo .bashrc:

extract () {
   if [ -f $1 ] ; then
      case $1 in
         *.tar.bz2)   tar xjf $1      ;;
         *.tar.gz)   tar xzf $1      ;;
         *.bz2)      bunzip2 $1      ;;
         *.rar)      rar x $1      ;;
         *.gz)      gunzip $1      ;;
         *.tar)      tar xf $1      ;;
         *.tbz2)      tar xjf $1      ;;
         *.tgz)      tar xzf $1      ;;
         *.zip)      unzip $1      ;;
         *.Z)      uncompress $1   ;;
         *)         echo "'$1' cannot be extracted via extract()" ;;
      esac
   else
      echo "'$1' is not a valid file"
   fi
} 

Aggiungi un esempio di come usarlo?
MiniGod

4
extract file.zip
frabjous

4

Ciò che non è stato ancora menzionato è la swiss-esercito-coltello di utility a riga di comando: atool; è disponibile nei repository: fai clic su atool Installa atool o esegui sudo apt-get install atool.

atoolè in realtà uno script che comprende varie funzioni come aunpack, apack, als, acat, adiff e arepack. Probabilmente l'uso più comune del programma è quello di estrarre gli archivi usando il comando aunpack. Ci sono alcune opzioni interessanti e utili, ma il modo di base per estrarre la maggior parte degli archivi è solo quello di eseguire, ad esempio,

aunpack myarchive.tar

Il supporto per tar, 7z, zip, jar, rar, ar, lha e molti altri formati di archivio e le loro varianti sono documentati entrando man atoolnel terminale o visualizzando la manpage di Ubuntu online .

Quindi, la cosa utile è che se hai un archivio tar, zip e gz nella stessa cartella, tutto ciò che devi fare per estrarli è eseguire

aunpack -e *

e tutti gli archivi supportati verranno decompressi mantenendo la struttura delle cartelle. Se il nome della cartella risultante esiste già, non verrà sovrascritto, ma verrà assegnato un nome univoco come unpack-5645.

Oppure, se si desidera scegliere un solo tipo di archivio e decomprimerli tutti, utilizzare invece

aunpack -e *.zip

Se hai bisogno di decomprimere i file direttamente in una particolare directory, mantenendo solo la struttura della directory della sottocartella (se esce), inserisci, ad esempio,

aunpack -e Scripts11.zip -X /home/mike/Videos

Se esiste già un file con lo stesso nome, verrà richiesto di rinominare o sovrascrivere un'azione a meno che non sia stata specificata l'opzione force ( -f) nel comando.

Come osserva la pagina man, aunpack estrae per primi

file in una directory univoca (temporanea), quindi spostarne il contenuto, se possibile. Ciò impedisce anche che i file locali vengano sovrascritti per errore.


Con gli altri strumenti, sono possibili altre azioni, come menzionato nella pagina man :

  • apack crea archivi dai file o dalla cartella specifica o stdin
  • als elenca i file all'interno dell'archivio delle specifiche
  • acat consente di estrarre i file di archivio su stdout
  • adiff ti consente di confrontare i due archivi specificati
  • arepack rende possibile convertire un formato di archivio in un altro posizionando il contenuto dell'archivio originale in una cartella temporanea e quindi reimballando quello nuovo.

Ci sono molte altre opzioni utili per tutte le utility, ma probabilmente quella più utilizzata sarà aunpack, in quanto ciò semplifica l'estrazione di più archivi diversi. È bello essere in grado di emettere un solo comando ed essere in grado di estrarre più formati di archivio diversi senza dover utilizzare i vari comandi per tar, zip, ecc.

Per un articolo molto recente che descrive come integrare le funzioni di atool nelle azioni personalizzate del tuo file manager, come Thunar, consulta questa rivista online .


3

Esiste uno strumento chiamato dtrx: esegui l'estrazione corretta.

Installalo dai repository di Ubuntu ed eseguilo dtrx somefile.someext. Lo strumento interrogherà in modo interattivo l'utente sugli archivi nidificati (zip di file zip).

dtrx è una versione sofisticata dell'estratto di frabjous .


0

Con quali tipi di formati devi occuparti? Un modo è scrivere uno script di shell, che controlla le estensioni del suo argomento. Oppure, se tutto ciò di cui hai a che fare sono variazioni su .tar. *, Fare semplicemente tar -xftratterà la maggior parte di quelli automaticamente. (Ricordo quindi solo quello e unzipche è sufficiente per tutto ciò che di solito incontro.)

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.