Cum poti cauta mai multe fisiere in Linux folosind o singura apelare a comenzii find

Configurare noua (How To)

Situatie

Presupunem ca dorim sa cautam fisiere video (mp4, mkv, etc) sau fisiere audio (mp3, flac, etc).

Putem cauta individual fisierele dupa extensie sau putem folosi o singura comanda find.

Solutie

Pasi de urmat

Deschidem un terminal si ori ne mutam in folderul in care facem cautarea, ori dam ca argument pentru comanda find folderul in care dorim sa cautam.

De obicei folosim comanda find cu mai multe argumente, dar de aceasta data avem nevoie sa le grupam.

Pentru ca find sa vada grupuri de argumente, folosim switch-ul -o.

find -o arg1 arg2 -o arg3 arg4

Practic am grupat comenzile

find arg1 arg2

find arg3 arg4

Intr-o singura comanda.

Revenim la exemplul nostru real:

Avem urmatoarea structura in directorul kdenlive:

Screenshot from 2015-11-18 21:36:28

Vrem sa afisam fisierele mp4 si mp3:

find -iname “*.mp3” -o -iname “*.mp4”

Screenshot from 2015-11-18 21:38:06

Sau dorim sa cautam dupa fisiere .thumb si .mp3:

find -iname “*.mp3” -o -iname “*thumb*”

Screenshot from 2015-11-18 21:41:46

Observam ca se afiseaza si un folder numit “thumbs” doarece am folosit un regex care cuprinde si numele folderului.

Putem elimina aceasta problema cautand doar dupa “*thumb” sau adaugand un filtru in grupul 2 de argumente:

find -iname “*.mp3” -o -type f -iname “*thumb*”

Screenshot from 2015-11-18 21:45:29

Swtich-ul -type f seteaza comanda find sa caute si sa afiseze doar fisiere, nu si directoare.

Tip solutie

Permanent

Voteaza

(4 out of 8 people found this article helpful)

Despre Autor

Leave A Comment?