Important! This is an automatic machine translated page. If you can read english, you should Click Here to read the original English version of the article.

Unzip or Unrar Many Files at Once in Linux Dosar Unzip sau Unrar Multe puţin o dată în Linux

If you've got a directory with dozens of zipped or rar'd files, you can run a single command to unzip them all in one step, thanks to the power of the bash shell. Dacă v-aţi luat un director cu zeci de fişiere arhivate sau rar'd, puteţi rula o comandă unică pentru a dezarhiva-le pe toate într-un singur pas, datorită puterii de shell bash.

For this task, we'll use bash's for loop command structure. Replace <var> with a variable name, and <list> with either a command that outputs a list or an explicit list. Pentru această sarcină, vom utiliza bash pentru structura de bucla de comandă. Înlocuiţi <var> cu un nume de variabilă, şi <list> fie cu o comandă care iesiri o listă sau o listă explicită.

for <var> in <list> pentru <var> în <list>
do face
command $<var>; comanda $ <var>;
done făcut

You can run it on a single line with this syntax instead: Puteţi rula pe o singură linie, cu această sintaxă în schimb:

for <var> in <list>;do command $<var>;done pentru <var> în <list>; a face comanda $ <var>; făcut

So if you want to unrar a list of files, you could use this command. Deci, dacă doriţi să unrar o listă de fişiere, puteţi utiliza această comandă. You don't necessarily need the quotes, but it helps when the filenames have spaces or something like that in them. Nu aveţi nevoie neapărat citate, dar ajută în cazul în care nume de fişiere trebuie să conţină spaţii sau ceva de genul că în ele.

for f in *.rar;do unrar e “$f”;done pentru f în *. rar; nu e unrar "$ f"; Done

If you wanted to use 7zip to extract a list of files: Dacă aţi vrut să folosească 7zip pentru a extrage o listă de fişiere:

for f in *.001;do 7z e “$f”;done pentru f în *. 001; a face 7z e "$ f"; Done

Or if you wanted to unzip a list of files: Sau, dacă ai vrut să unzip o listă de fişiere:

for f in *.zip;do unzip “$f”;done pentru f în *. ZIP; do unzip "$ f"; Done

You could even chain commands together if you wanted to. Ai putea chiar lanţul de comenzi împreună, dacă vrem să. For instance, if all your zip files contained .txt files and you wanted to unzip them and then move the unzipped files to another directory: De exemplu, în cazul în care toate zip dvs. fişierele conţinute. Txt şi ai vrut să dezarhivaţi-le şi apoi mutaţi fişierele dezarhivat la un alt director:

for f in *.zip;do unzip “$f”;done; for f in *.txt;do mv “$f” /myfolder/;done pentru f în *. ZIP; do unzip "$ f"; terminat; pentru f în *. txt; do mv "$ f" / myfolder /; făcut

The bash shell is just so incredibly powerful… this doesn't even tap the power, but it should give you a good idea of what is possible. Shell bash este doar atât de incredibil de puternic ... acest lucru nu de la robinet, chiar de putere, dar acesta ar trebui să vă oferi o idee bună a ceea ce este posibil.

This article was originally written on 05/28/07 Tagged with: Acest articol a fost scris iniţial pe 05.28.07 Etichetate cu: Ubuntu Ubuntu

Daily Email Updates Daily Actualizări de email

You can get our how-to articles in your inbox each day for free. Aveţi posibilitatea să obţineţi modul nostru de-a articole în Inbox în fiecare zi pentru drum liber. Just enter your name and email below: Doar introduceţi numele dvs. şi e-mail de mai jos:


Name: Nume:
Email: E-mail:

Comments (13) Comentarii (13)

  1. Mr Linux Dl Linux

    Actually, I'm pretty sure with both these commands you can just do this: De fapt, eu sunt destul de sigur cu ambele aceste comenzi puteţi face tocmai acest lucru:

    unzip *.zip unzip *. zip
    unzip *.rar unzip *. rar

    Seems a bit more straightforward. Pare un pic mai simplu. :-)

  2. The Geek Geek

    That may work sometimes, but didn't work for me. Acest lucru poate uneori, dar nu au de lucru pentru mine. (just tried it again to make sure) (tocmai a incercat-o din nou pentru a vă asigura)

    The article is mostly illustrating how to use the for / do in bash =) Articol este cea mai mare parte care ilustrează modul de utilizare pentru / de făcut în bash =)

  3. BookJunkie BookJunkie

    How would I go about 'rarring' Cum as putea sa merg despre "rarring ' :) or zipping a bunch of folders? sau zipping o grămadă de dosare?

  4. jose jose

    Is there a decompressor that extracts almost all file types, if so which? Există un decompresor care extrage aproape toate tipurile de fişiere, în cazul în care acest lucru?

  5. hoberion hoberion

    find -name *.zip -exec unzip {} \; găsi-name *. zip-unzip exec () \;

  6. Ranga Ranga

    Try unzip \*.zip – It works in RED HAT flavours, I have not tried it on any other linux. Încercaţi unzip \ *. zip - Acesta funcţionează în RED HAT arome, nu am încercat-o pe orice alt linux.

  7. Alp Alp

    Why didn'ti find this 3 days ago? De ce didn'ti găsi acest 3 zile în urmă? The only matter is that the files aren't extracted in subdirectories. Problema este că numai fişierele nu sunt extrase în subdirectoare. I made a similar script myself. Am făcut un script similar mine însumi. Take a look: Aruncati o privire: http://ubuntu.alperortac.de/20.....ubfolders/ http://ubuntu.alperortac.de/20.....ubfolders/

  8. Davide Cavestro Davide Cavestro

    Maybe Alp wants something like this: Poate Alp vrea ceva de genul:

    for f in *.zip;do unzip “$f” -d “$f.inflated”;done pentru f în *. ZIP; do unzip "$ f"-d "$ f.inflated"; Done

    It works on my Debian. It works pe Debian meu.

    PS: I've not seen Alp link cause it seems broken. PS: Eu nu am vazut Alp cauza link-ul se pare rupt.

  9. Alp Alp

    Sorry for the broken link, and thanks for pointing that out. Ne pare rău pentru link-ul spart, şi mulţumiri pentru indică faptul că afară. It's fixed now. It's fix acum.

  10. Ax3 Ax3

    Very useful tutorial! Tutorial Foarte util! Thanks! Mulţumesc!

    I modified mine a bit to account for archives which ask for confirmation. Am modificare a mea un pic a ţine cont de arhive care cere confirmarea. If you 'man unzip' you'll find a -o switch which: “-o overwrite files WITHOUT prompting” Daca tu unzip "om", veţi găsi un switch-o care: "-o suprascrie fişierele fără a întreba",

    So my .sh script amounted to: Deci, script-ul meu. Sh-au ridicat la:

    for f in *.zip; pentru f în *. ZIP;
    do unzip -o -d “$f”; do unzip-o-d "$ f";
    done făcut

    Hope this helps someone! Hope this ajutor pe cineva! Regards, Cu respect,
    Ax3 Ax3

  11. Ax3 Ax3

    Looks like my previous code post didn't go thru completely. Se pare ca postul meu de cod anterior nu au trecut prin complet. I meant on the second line of code: M-am referit la a doua linie de cod:

    do unzip -o -d foldername/ “$f”; do unzip-o-d numefolder / "$ f";

    Ax3 Ax3

  12. 1jackjack 1jackjack

    I know this page is old, but I just found it when looking for a good unrar script, so thought I would post my final solution. Ştiu că această pagină este vechi, dar tocmai am gasit-o atunci când caută un script de unrar bun, aşa că am crezut că ar posta mea soluţie finală. The situation: you're in a directory with a bunch of folders, each one containing a compressed file. Situaţia: sunteţi într-un director cu un buchet de dosare, fiecare dintre care conţine un fişier comprimat. I used to use this script, which found and extracted all the *.rar files: Am folosit pentru a utiliza acest script, care a găsit şi extras toate fişierele *. rar:

    find -type f -name '*.rar' -exec unrar x {} \; găsi-type f-name '*. rar "unrar exec x () \;

    But then i noticed some of my compressed files were distributed over many 'part' files, and occasionally, all of these would be *.rar files, and so this script would try to do the whole decompression for part file, which was annoying, time consuming and more importantly not the elegant solution! Dar apoi am observat că unele dintre fisierele mele comprimat au fost distribuite peste o parte de multe "" fişiere, şi, ocazional, toate acestea ar fi fişierele *. rar, şi aşa mai departe acest script va încerca să facă decompresie pentru întregul dosar parte, care a fost enervant, consumatoare de timp şi, mai important, nu soluţie elegantă! So after a bit of reading, I came up with this: Deci, după un pic de citit, am venit cu aceasta:

    for directory in `ls -d */`; do pentru directorul în `ls-d * /"; do
    rarFile=`ls $directory | grep -i .rar –max-count 1`; rarFile = `ls Listă $ | grep-i. RAR-max-count 1`;
    unrar e $directory$rarFile; unrar e $ $ directorul rarFile;
    done făcut

    This iterates through each directory at the current level, and for each one finds just the first *.rar file, and extracts it to the current directory. Acest lucru iterates prin fiecare directorul de la nivelul actual, iar pentru fiecare o găseşte doar primul fişier *. rar, şi extractele-l la directorul curent.

  13. Sergio Sergio

    thx a lot!!! thx foarte mult! :)


Leave a Comment Lăsaţi un comentariu




Leave your Leave tău friendly prietenoasa comment here. comentariu aici.

If you have a computer help question, Dacă aveţi un calculator ajuta la întrebare, click here to leave it on the forums click aici pentru a lăsa pe forum instead. în schimb.

Note: Your comment may not show up immediately on the site. Notă: Comentariul dvs. să nu apară imediat pe site-ul.

Our Friends Our Friends
Getting Started Noţiuni de bază


About How-To Geek Despre "Cum să" Geek
What Is That Process? Ce este acest proces?
svchost.exe svchost.exe
jusched.exe winampa.exe
dwm.exe dwm.exe
ctfmon.exe ctfmon.exe
wmpnetwk.exe wmpnetwk.exe
wmpnscfg.exe wmpnscfg.exe
rundll32.exe rundll32.exe
wfcrun32.exe wfcrun32.exe
Ipoint.exe Ipoint.exe
Itype.exe Itype.exe
Wfica32.exe Wfica32.exe
Mobsync.exe Mobsync.exe
conhost.exe conhost.exe
Dpupdchk.exe Dpupdchk.exe Adobe_Updater.exe Adobe_Updater.exe

Copyright © 2006-2009 HowToGeek.com. Copyright © 2006-2009 HowToGeek.com. All Rights Reserved. Toate drepturile rezervate.