Znajdę Cię, /usr/bin/find! Znajdę Cię.
2008-06-10
“Jakie system lubisz najbardziej i dlaczego UNIX?” 1
Ze wszystkich systemów najbardziej lubię systemy UNIX-owe. W dzisiejszej pracy domowej odpowiem dlaczego. Takie systemy składają się z kernela, który jest duży i z małych plików, które są tekstem lub programami. Te małe programy są dlatego małe, gdyż robią jedną rzecz — czasem dobrze. Programy te moża łączyć rurami. Rura do łączenia wygląda tak: |.
Bardzo lubię taki program /usr/bin/find. Program ten znajduje pliki i katalogi. Może też zrobić coś z nimi, jak już je znajdzie. Program obsługuje się bardzo łatwo, dlatego jest taki prosty.
Żeby zobaczyć wszystkie pliki w katalogu wystarczy napisać:
emil@heroina:\~\$ find .
To nie jest bardzo użyteczne. Bardziej fajnie będzie, gdy wyszukamy pliku po kawałku nazwy. Żeby to zrobić, trzeba napisać takie coś:
emil@heroina:\~\$ find . -name “Vespa”
./Music/Vespa
Możemy dodatkowo szukać plików, lub katalogów — zależnie od tego co chcemy znaleźć: plik lub katalog. Do tego służy -type. Jak wpiszemy “f” to będzie szukał plików, a jak “d” to directorów (zwanych folderami (zwanych katalogami (zwanych szufladami). Napiszę teraz jak znaleźć pliki mp3, ale tylko takie, co mają w nazwie “ska” i mają więcej niż 4MiB.
emil@heroina:\~\$ find . -iname “*ska*” -type f -size +4M
./Music/podworkowi_chuligani/03-podworkowi_chuligani-ska_ska_ska.mp3
./Music/Cala_Gora_Barwnikow/11-cala_gora_barwnikow-skavenir.mp3
./Music/Skapoint - Skapoint/Skapoint - track6.mp3
./Music/Skapoint - Skapoint/Skapoint - track10.mp3
./Music/Skapoint - Skapoint/Skapoint - track8.mp3
./Music/Skapoint - Skapoint/Skapoint - track4.mp3
./Music/Skapoint - Skapoint/Skapoint - track5.mp3
./Music/Skapoint - Skapoint/Skapoint - track2.mp3
./Music/Skapoint - Skapoint/Skapoint - track3.mp3
./Music/Skapoint - Skapoint/Skapoint - track7.mp3
./Music/Skapoint - Skapoint/Skapoint - track9.mp3
./Music/Skapoint - Skapoint/Skapoint - track1.mp3
./Music/oldies/la ruda salska - roots ska goods.mp3
./Music/Polemic - Do ska pre malibu/13 Doska.mp3
./Music/Polemic - Do ska pre malibu/07 Skank.mp3
./Music/Polemic - Do ska pre malibu/03 Do SKA!.mp3
Przełącznik -name od -iname różni się tym, że jeden widzi duże litery, a drugi niebardzo. Ten z ‘i’ niebardzo. Przełącznik -size pozwala nam określić jaki rozmiar powinien mieć plik. Cyferki można podawać jako małe (c), średnie (k), duże (M) i zajebiście wielkie (G).
Ale to nie wszystko! Bo find umie też z tymi plikami coś zrobić. Jednym z coś zrobić jest -delete. Służy on do kasowania znalezionych plików. Jak mamy taki edytor, co z uporem maniaka dodaje nam pliki z tyldą na końcu, to my możemy szybko je skasować.
find . -name “*\~” -delete
Jak jesteśmy leniwi i potrzebujemy lufy przy skroni, żeby cokolwiek zrobić, to możemy sobie napisać
find . -atime +3 -delete
I to nam po prostu skasuje każdy plik, cośmy go nie otworzyli przez trzy dni. Świetne dla doktorantów. Jak mamy koleżankę, a ta koleżanka ma UNIX-a (tak, jest to sytuacja hipotetyczna), i chcemy jej ukraść wszystkie zdjęcia (w nadziei na) to możemy napisać takie coś.
find \~ -type f -name “*.jpg” -exec cp {} /media/kradziej \;
Bo przełącznik -exec pozwala nam wykonywać zewnętrzne rozkazy na liście plików znalezionych.
Możemy je kasować, dodawać, odpalać z nimi GIMP-a, no po prostu wszystko, co nam wpadnie do głowy.
Manual programu /usr/bin/find bardzo mi się podobał. Z manuala dowiedziałem się bardzo dużo ciekawych rzeczy. Wielu nawet nie opisałem, bo jest bardzo gorąco, ale to co opisałem, to się najczęściej używa.
Jak dorosnę chcę zostać nerdem, tak jak mój Ojciec.
- W biurze jest bardzo gorąco. Bardzo. ↩