Sortare/alegere fișiere în funcție de extensie

HDD-ul laptopului meu a crăpat. Cum? Nu știu. De bătrânețe, probabil. Și de funcționare îndelungată. Contează că nu mai puteam face nimic pe el. Tabela de partiții era vraiște, nu puteam accesa nimic. Și ca un făcut, fix săptămâna asta nu am făcut backup la documentele importante. Așa că a trebuit să le recuperez cu Photorec (știam eu că n-am muncit degeaba când l-am tradus :P).
Problema era următoarea: sus-numitul photorec a găsit toate fișierele, cred că și pe alea din primele zile ale laptopului... aveam câteva zeci de mii de fișiere (da! zeci de mii!) din care-mi trebuiau câteva .PDF-uri. Și cum nu se punea problema să caut prin toate dosarele alea - photorec salvează fișierele recuperate în dosare de câte 500 de fișiere - am căutat o metodă mai simplă de a alege fișierele. Așa că am făcut un script (newbie-mode!) care să-mi caute toate fișierele -PDF și să le mute în alt dosar.

#!/bin/bash
mkdir ~/PDFS
 for i in $(find . -iname "*.pdf"); do mv $i /PDFS
done
exit

Cam ăsta e scriptul. Ce face?
mkdir ~/PDFS face în /home/NUME_UTILIZATOR un dosar numit PDFS.
find . -iname "*.pdf" - caută toate fișierele cu extensia .pdf (indiferent de litere mari sau mici, adică extensia poate fi .pdf, .PDF sau orice combinație de litere mari și mici).
 for i in $(find . -iname "*.pdf"); do mv $i ~/PDFS  - orice fișier găsit de comanda precedentă va fi mutat (mv) în dosarul PDFS creat la început.
Normal, numele dosarului și extensia fișierelor pot fi schimbate după necesități. De exemplu, dacă vreți să căutați fișiere cu extensia .odt, scrieți .odt în loc de .pdf și eventual schimbați și numele dosarului.
Codul de mai sus trebuie copiat într-un fișier text simplu care va fi salvat cu extensia .sh, ceva de genul script_cautare_fisiere.sh. Copiem/Mutăm fișierul în dosarul unde vrem să-l rulăm, dăm comanda

chmod +x script_căutare_fișiere.sh

ca să-l facem executabil, apoi îl rulăm cu

./script_cautare_fisiere.sh

și avem răbdare să termine. That's all, folks! :)
P.S. știu că sunt unii care pot comenta, că se putea face și mai mult, dar am spus de la începutul blogului că eu sunt începător. :D

Comentarii

  1. Uite ce nu imi place. De fapt ce nu e tocmai OK in ce-ai facut tu:
    *.pdf

    Obisnuiesc si probabil m-am invatat (prost) sa folosesc ghilimelele. Faza e ca in bash, comanda se va executa cu succes, dar in alt shell (de exemplu zsh), nu va functiona:

    zsh: no matches found: *.pdf

    Fiindca ai scris la inceput shell-ul, e ok, dar for compatibility's sake, foloseste ghilimele :D

    RăspundețiȘtergere
  2. OK, mersi de sugestie. Cum spuneam, sunt incepator si nu ma pricep la alte shell-uri...
    Apropo, pe blogul tau cu Pi ai mai primit un comentariu sau panarama mea de tastatura nu mai are Enter?

    RăspundețiȘtergere
  3. Iar faza cu shell-ul de la inceput o stiu de cand mi-am facut un script care sa salveze ppa-urile, pachetele, etc. de pe un sistem ca sa le pot reface pe altul/pe un fresh install, ceva ceea ce face aptik despre care am scirs pe forum.

    RăspundețiȘtergere

Trimiteți un comentariu

Ai ceva de spus? OK, dar fii politicos, altfel vei primi ce meriți!

Postări populare de pe acest blog

Ion Pribeagu - un scriitor uitat

Crăciunul în mitologia română

Kdenlive „crapă” la importul unui clip