If-Koubou

Unzip sau Unrar multe fișiere în același timp în Linux

Unzip sau Unrar multe fișiere în același timp în Linux (Cum să)

Dacă aveți un director cu zeci de fișiere zip sau rar'd, puteți executa o singură comandă pentru a le dezarhiva pe toate într-un singur pas, grație puterii coajei bash.

Pentru această sarcină, vom folosi structura de comandă pentru bash. Înlocuiți cu un nume de variabilă și cu o comandă care emite o listă sau o listă explicită.

pentru in
do
comanda $;
Terminat

Puteți rula pe o singură linie cu această sintaxă:

pentru in, comanda $; done

Deci, dacă doriți să dezarhivați o listă de fișiere, puteți utiliza această comandă. Nu aveți nevoie neapărat de citate, dar vă ajută când numele de fișiere au spații sau ceva de genul asta în ele.

pentru f în * .rar; faceți unar e "$ f";

Dacă doriți să utilizați 7zip pentru a extrage o listă de fișiere:

pentru f în * .001; face 7z e "$ f";

Sau dacă doriți să dezarhivați o listă de fișiere:

pentru f în * .zip; dezarhivați "$ f";

Puteți chiar să alăturați comenzile împreună dacă doriți. De exemplu, dacă toate fișierele zip conțin fișiere .txt și ați vrut să le dezarhivați și apoi să mutați fișierele dezarhivate într-un alt director:

pentru f în * .zip; dezarhivați "$ f"; pentru f în * .txt; nu mv "$ f" / myfolder /; terminat

Cochilia bash este la fel de incredibil de puternică ... asta nu atinge nici măcar puterea, dar ar trebui să vă dau o idee bună despre ceea ce este posibil.