Wyszukiwanie plików w Linuksie – bardziej zaawansowane przykłady
Więcej niż jeden katalog wyszukiwania:
find /project-a/wp-config/themes/ /project-b/wp-config/themes/ -name blog-posts.php
Wyszukiwanie plików należących do konkretnego użytkownika
find ./ -user www-data
Więcej niż jeden warunek przy wyszukiwaniu plików wg nazwy
spełnione wszystkie warunki (A, AND)
find ./ \( -name "prices" -and -name "*.php" \)
spełniony dowolny z warunków (O, OR)
find ./ \( -name "*.xml" -o -name "*.html" \)
negacja, jak znaleźć pliki nie zawierające danej frazy
find ./ \( -name "*.xml" -and -not -name "config" \)
sposób na znalezienie najnowszej wersji danego pliku
val.class.php używałem w wielu różnych projektach, czasami potrzebowałem go zupdate’ować, jeśli policzyć wszystkie wystąpienia tego pliku na dysku, było ich dość dużo i sam już straciłem rachubę który plik jest najnowszy. Konstrukcja (ls -lt) sortuje pliki według ich daty modyfikacji
mlocate val.class.php | xargs ls -lt --time-style="long-iso"
-rw-rw-r-- 1 damian damian 3924 2019-01-02 10:21 /htdocs/GIT/core/app/val.class.php -rw-r--r-- 1 damian damian 4283 2017-09-12 10:55 /htdocs/history/sub2/php/app/val.class.php -rw-r--r-- 1 damian damian 4283 2017-09-12 10:55 /htdocs/www/phpxs.pl/textpattern/php/app/val.class.php -rw-r--r-- 1 damian damian 3469 2014-11-04 11:20 /htdocs/apps/gcode/php/app/val.class.php -rw-r--r-- 1 damian damian 3469 2014-11-04 11:20 /htdocs/GIT/apps/gcode/php/app/val.class.php -rw-r--r-- 1 damian damian 3469 2014-11-04 11:20 /htdocs/history/laptop-old/apps/gcode/php/app/val.class.php
operacje na wyszukiwanych plikach
zmiana praw dostępu:
find wp-content -type d -exec chmod 755 {} \;
listowanie samych katalogów w których znajdują się pliki
find wp-content/uploads -name "*.php" -exec ls -ld {} \;
usuwanie plików
find wp-content/uploads -name "*.php" -exec rm {} \;
automatyczne dodawanie znalezionych plików do archiwum
find . -type f -name "*.php" | xargs tar cvf myfile.tar
przeszukiwanie archiwów GZIP:
find . -type f -name "*.gz" -exec zgrep 'wp-login.php' {} \;
pokaż linie przed i po wystąpieniu szukanego ciągu znaków
find . -type f -name "*.php" -exec grep -B2 -A2 'eval(' {} \;
więcej przykładów:
http://alvinalexander.com/unix/edu/examples/find.shtml
https://www.tecmint.com/35-practical-examples-of-linux-find-command/
https://www.cyberciti.biz/faq/unix-linux-find-file-owner-name/
Komentarze