Unzip o Unrar Molti file contemporaneamente in Linux
Se hai una directory con dozzine di file zippati o rar, puoi eseguire un singolo comando per decomprimerli tutti in un unico passaggio, grazie alla potenza della shell bash.
Per questa attività, useremo la struttura di comando del ciclo per bash. Sostituisci con un nome di variabile e con un comando che genera un elenco o un elenco esplicito.
per dentro
fare
comando $;
fatto
Puoi eseguirlo su una singola riga con questa sintassi invece:
for in; do comando $; fatto
Quindi se vuoi rimuovere un elenco di file, puoi usare questo comando. Non hai necessariamente bisogno delle virgolette, ma aiuta quando i nomi dei file hanno spazi o qualcosa del genere in loro.
per f in * .rar; fare unrar e "$ f"; fatto
Se si desidera utilizzare 7zip per estrarre un elenco di file:
per f in * .001; do 7z e "$ f"; fatto
O se volevi decomprimere un elenco di file:
per f in * .zip; fai decomprimere "$ f"; fatto
Puoi anche concatenare i comandi se lo desideri. Ad esempio, se tutti i file zip contenevano file .txt e volevi decomprimerli e spostare i file decompressi in un'altra directory:
per f in * .zip; fai decomprimere "$ f"; per f in * .txt; fai mv "$ f" / myfolder /; done
La shell bash è così incredibilmente potente ... questo non tocca nemmeno il potere, ma dovrebbe darti una buona idea di ciò che è possibile.