Linux Ubuntu - znajdowanie plików

Z SOISK systemy operacyjne i sieci komputerowe
Skocz do: nawigacja, szukaj


Find

Polecenia find służy do znajdowania plików.

Szukanie wg nazwy

find -name "muzyka" szuka pliku/katalogu o nazwie muzyka, wielkość liter ma znaczenie

find /home -iname "muzyka" szuka pliku/katalogu o nazwie muzyka w katalogu /home, wielkość liter nie ma

znaczenia

uczen@linux:~$ find -name "muzyka"
uczen@linux:~$ find -iname "muzyka"
./Muzyka
uczen@linux:~$

Szukanie wg wielkości

find -size 4M szukanie plików w katalogu bieżącym, których wielkość wynosi 4MB

find -size +4M szukanie plików w katalogu bieżącym, których wielkość przekracza 4MB

find -size -4M szukanie plików w katalogu bieżącym, których wielkość nie przekracza 4MB

Oznaczenia wielkości:

  • c (bajty)
  • k (kilobajty)
  • M (megabajty)
  • G (gigabajty)
  • b (512 bajtowe bloki)

Szukanie wg czasu

find *.txt -atime -1 znajduje pliki tekstowe, do których dostęp (access time) był mniej niż 1 dzień temu.

find *.txt -mtime 1 znajduje pliki tekstowe, które były modyfikowane (modification time) wczoraj.

find *.txt -ctime +7 znajduje pliki tekstowe, których atrybuty (np. zmianiany był właściciel albo zezwolenia)

były zmieniane powyżej 7 dni temu (change time).

uczen@linux:~$ chmod 755 1.txt
uczen@linux:~$ find *.txt -ctime -1
1.txt
uczen@linux:~$

find *.txt -newer 2.txt znajduje pliki tekstowe nowsze niż 2.txt

uczen@linux:~$ find *.txt -newer 2.txt
1.txt
l3.txt
uczen@linux:~$

Szukanie wg typu

find -type f szukanie plików

Typy:

  • b – blokowy
  • c – znakowy
  • d – katalog
  • p – łącze nazwane (FIFO)
  • f – zwykły plik
  • l – dowiązanie symboliczne
  • s – gniazdo

Poniżej przykład szukania plików mających w nazwie słowo "lista".

uczen@linux:~$ find -type f -iname "*lista*"
./lista.txt
./kopia_lista.txt
./k2/k1/lista.txt
./k2/k1/kopia_lista.txt
./k2/k1 (2)/lista.txt
./k2/k1 (2)/kopia_lista.txt
uczen@linux:~$ 

Szukanie wg właściciela i zezwoleń

find -user misiek szukanie plików i katalogów należących do użytkownika misiek

find -group misiek szukanie plików i katalogów należących do grupy misiek

find -perm 755 szukanie plików i katalogów o zezwoleniach 755

uczen@linux:~$ chmod 444 1.txt
uczen@linux:~$ find -perm 444
./1.txt
uczen@linux:~$ 

Łączenie zapytań

find -perm 444 -user uczen -size -10M szukanie plików użytkownika uczen o zezwoleniach 444 i wielkości poniżej 10 MB

find -perm 444 ! -user uczen szukanie plików o zezwoleniu 444, ale nie należacych do użytkownika uczen

find -perm 444 -not -user uczen to samo co wyżej

uczen@linux:~$ find -perm 444 ! -user uczen
uczen@linux:~$ find -perm 444 -not -user uczen
uczen@linux:~$ find -perm 444 -user uczen
./1.txt