Find (Linux): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 1: Regel 1:
Met het commando ''find'' kun je een hoop geinige dingen doen.
+
Met het commando ''find'' kun je geinige dingen doen.
 +
 
 +
== Basis ==
 +
 
 +
Met
 +
 
 +
find
 +
 
 +
krijg je een recursieve lijst van alle bestanden (inclusief paden).
 +
 
 +
Als ik dat commando geef in m'n muziek-map, krijg ik bv. een lijst met 2.566 regels, die echter niet is gealfabetiseerd. Laatste entries (na alfabetiseren):
 +
 
 +
<pre>
 +
./Yann Tiersen - Tout est Calme/Yann Tiersen - Tout est Calme - 09 - L'étal.mp3
 +
./Yann Tiersen - Tout est Calme/Yann Tiersen - Tout est Calme - 10 - La Decouverte.mp3
 +
./Yann Tiersen/Yann Tiersen - Comptine d'un Autre Été - Extended version.mp3
 +
./Yann Tiersen/Yann Tiersen - Inédit.mp3
 +
./Yann Tiersen/Yann Tiersen - Le jour d'avant.mp3
 +
./Yann Tiersen/Yann Tiersen - Le Quartier (live@werchter 2002).mp3
 +
./Yann Tiersen/Yann Tiersen - Les Oiseaux de Passages - 01 Le Parapluie.mp3
 +
./Yann Tiersen/Yann Tiersen - Monochrome (live@werchter 2002).mp3
 +
./Yann Tiersen/Yann Tiersen - Printemps de Bourges - A Quai.mp3
 +
./Yann Tiersen/Yann Tiersen - Printemps de Bourges - Rue des Cascades.mp3
 +
./Yann Tiersen/Yann Tiersen - Rue des cascades (Film Version).mp3
 +
./Youssou N'Dour & Neneh Cherry
 +
./Youssou N'Dour & Neneh Cherry/Youssou N'Dour & Neneh Cherry - 7 Seconds.mp3
 +
./Zaz
 +
./Zaz/Zaz - Je veux (karaoke).mp3
 +
./Zaz/Zaz - Je veux.mp3
 +
./Zoe Keating
 +
./Zoe Keating/Zoe Keating - Legions (War).mp3
 +
</pre>
 +
 
 +
Je kunt ook aangeven waar-ie moet beginnen met zoeken. Bv.:
 +
 
 +
cd ~
 +
find Dropbox/Music
 +
 
 +
geeft hetzelfde resultaat als hiervoor
 +
 
 +
== Tests ==
 +
 
 +
Rondom ''find'' heten filters ''tests''. Je kunt op verschillende manieren filteren. Bv.
 +
 
 +
cd ~
 +
find Dropbox/Music -type d
 +
 
 +
test voor directories. Laatste output (weer: Ongesorteerd):
 +
 
 +
<pre>
 +
Dropbox/Music/K's Choice - Almost Happy/CD1
 +
Dropbox/Music/K's Choice - Almost Happy/CD2
 +
Dropbox/Music/Radiohead - OK Computer
 +
Dropbox/Music/Marlene Dietrich
 +
Dropbox/Music/Yann Tiersen - Black Session (Live)
 +
</pre>
 +
 
 +
Testen voor bestandsnamen, bv.:
 +
 
 +
cd Dropbox/Music
 +
find -type d -name "John*"
 +
 
 +
geeft
 +
 
 +
<pre>
 +
./Johnny Cash
 +
./John Mayer
 +
./Johnny McEvoy
 +
./John Denver
 +
./Johnny Hiatt
 +
</pre>
  
 
== Recursief alle bestanden van een bepaald type verwijderen ==
 
== Recursief alle bestanden van een bepaald type verwijderen ==
Regel 10: Regel 80:
  
 
  find . -name "*.php" -type f -delete
 
  find . -name "*.php" -type f -delete
 +
 +
Met ''-name'' kun je namen specificeren. Bv.:
 +
 +
cd ~/Dropbox/Music
 +
find --name John
  
 
== Bronnen ==
 
== Bronnen ==
  
* https://math2001.github.io/post/bashs-find-command/
+
* https://math2001.github.io/post/bashs-find-command/ → Handig om 't te leren
 
* https://askubuntu.com/questions/377438/how-can-i-recursively-delete-all-files-of-a-specific-extension-in-the-current-di
 
* https://askubuntu.com/questions/377438/how-can-i-recursively-delete-all-files-of-a-specific-extension-in-the-current-di

Versie van 25 mei 2018 13:57

Met het commando find kun je geinige dingen doen.

Basis

Met

find

krijg je een recursieve lijst van alle bestanden (inclusief paden).

Als ik dat commando geef in m'n muziek-map, krijg ik bv. een lijst met 2.566 regels, die echter niet is gealfabetiseerd. Laatste entries (na alfabetiseren):

./Yann Tiersen - Tout est Calme/Yann Tiersen - Tout est Calme - 09 - L'étal.mp3
./Yann Tiersen - Tout est Calme/Yann Tiersen - Tout est Calme - 10 - La Decouverte.mp3
./Yann Tiersen/Yann Tiersen - Comptine d'un Autre Été - Extended version.mp3
./Yann Tiersen/Yann Tiersen - Inédit.mp3
./Yann Tiersen/Yann Tiersen - Le jour d'avant.mp3
./Yann Tiersen/Yann Tiersen - Le Quartier (live@werchter 2002).mp3
./Yann Tiersen/Yann Tiersen - Les Oiseaux de Passages - 01 Le Parapluie.mp3
./Yann Tiersen/Yann Tiersen - Monochrome (live@werchter 2002).mp3
./Yann Tiersen/Yann Tiersen - Printemps de Bourges - A Quai.mp3
./Yann Tiersen/Yann Tiersen - Printemps de Bourges - Rue des Cascades.mp3
./Yann Tiersen/Yann Tiersen - Rue des cascades (Film Version).mp3
./Youssou N'Dour & Neneh Cherry
./Youssou N'Dour & Neneh Cherry/Youssou N'Dour & Neneh Cherry - 7 Seconds.mp3
./Zaz
./Zaz/Zaz - Je veux (karaoke).mp3
./Zaz/Zaz - Je veux.mp3
./Zoe Keating
./Zoe Keating/Zoe Keating - Legions (War).mp3

Je kunt ook aangeven waar-ie moet beginnen met zoeken. Bv.:

cd ~
find Dropbox/Music

geeft hetzelfde resultaat als hiervoor

Tests

Rondom find heten filters tests. Je kunt op verschillende manieren filteren. Bv.

cd ~
find Dropbox/Music -type d

test voor directories. Laatste output (weer: Ongesorteerd):

Dropbox/Music/K's Choice - Almost Happy/CD1
Dropbox/Music/K's Choice - Almost Happy/CD2
Dropbox/Music/Radiohead - OK Computer
Dropbox/Music/Marlene Dietrich
Dropbox/Music/Yann Tiersen - Black Session (Live)

Testen voor bestandsnamen, bv.:

cd Dropbox/Music
find -type d -name "John*"

geeft

./Johnny Cash
./John Mayer
./Johnny McEvoy
./John Denver
./Johnny Hiatt

Recursief alle bestanden van een bepaald type verwijderen

Test:

find . -name "*.php" -type f

Echt:

find . -name "*.php" -type f -delete

Met -name kun je namen specificeren. Bv.:

cd ~/Dropbox/Music
find --name John

Bronnen