Find

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
(Utworzył nową stronę „Category:Polecenia systemu Linux == Polecenie find == '''find''' przeszukuje drzewo katalogowe, zakorzenione w każdej z podanych nazw plików. Wykonuje przy ty...”)
 
 
Linia 87: Linia 87:
 
Wartości numeryczne mogą być podawane jako
 
Wartości numeryczne mogą być podawane jako
  
 +
*'''+n''' dla większych niż n,
 +
*'''-n''' dla mniejszych niż n,
 +
*'''n''' dla równych n.
 +
*'''-amin n''' dostęp do pliku nastąpił ostatnio n minut temu.
 +
*'''-anewer''' plik do pliku ostatnio dostano się wcześniej niż plik został zmodyfikowany. ''-anewer'' podlega ''—-follow'' tylko jeśli -follow pojawia się w linii komend przed ''-anewer''.
 +
*'''-atime n''' do pliku dostano się po raz ostatni n*24 godzin temu.
 +
*'''-cmin n''' status pliku został zmieniony n minut temu.
 +
*'''-cnewer''' plik status pliku był ostatnio zmieniony wcześniej niż zmodyfikowano plik. ''-cnewer'' podlega ''-follow'' tylko jeśli -follow pojawia się w linii komend przed -cnewer.
 +
*'''-ctime n''' status pliku zmienił się ostatnio n*24 godzin temu.
 +
*'''-empty''' plik jest pusty i jest albo plikiem regularnym, albo katalogiem.
 +
*'''-false''' zawsze fałszywe.
 +
*'''-fstype''' typ plik jest na systemie plików o typie typ. Prawidłowe typy systemów plików różnią się na różnych wersjach Uniksa; ich niekompletna lista, która jest przyjmowana w części systemów to: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Aby zobaczyć typy twoich systemów plików, użyj -printf z dyrektywą %F.
 +
*'''-gid n''' numeryczny GID pliku to n.
 +
*''-group nazwag''  plik należy do grupy nazwag (numeryczny GID jest dopuszczalny).
 +
*'''-ilname pattern''' podobne do -lname, lecz dopasowania są niewrażliwe na rozmiar liter.
 +
*'''-iname pattern''' podobne do -name, lecz dopasowanie jest niewrażliwe na rozmiar liter. Na przykład wzorce ‘fo*’ i ‘F??’ dopasują się do nazw ‘Foo’, ‘FOO’, ‘foo’, ‘fOo’, itd.
 +
*'''-inum n''' plik ma numer iwęzła n.
 +
*'''-ipath wzorzec''' podobne do -path, lecz dopasowanie jest niewrażliwe na rozmiar liter.
 +
*'''-iregex wzorzec''' podobne do -regex, lecz dopasowanie jest niewrazliwe na rozmiar liter.
 +
*'''-links n''' plik ma n dowiązań.
 +
*'''-lname wzorzec''' plik jest dowiązaniem symbolicznym, którego zawartość odpowiada wzorcowi powłoki wzorzec. Metaznaki nie traktują specjalnie ‘/’ i ‘.’.
 +
*'''-mmin n''' dane pliku były ostatnio modyfikowane n minut temu.
 +
*'''-mtime n''' dane pliku były ostatnio modyfikowane n*24 godzin temu.
 +
*'''-name wzorzec''' podstawa nazwy pliku (z usuniętą ścieżką i poprzedzającymi katalogami) odpowiada wzorcowi powłoki wzorzec. Metaznaki (‘*’, ‘?’, ‘[]’) nie odpowiadają ‘.’ na początku nazwy pliku. Aby zignorować katalogi i pliki im podległe, użyj -prune; zobacz przykład w opisie -path.
 +
*'''-newer plik''' plik został zmodyfikowany wcześniej niż plik. -newer podlega -follow tylko jeśli -follow znajduje się w linii komend przed -newer.
 +
*'''-nouser''' do numerycznego UID pliku nie pasuje żaden użytkownik.
 +
*'''-nogroup''' do numerycznego GID pliku nie pasuje żadna grupa.
 +
*'''-path wzorzec''' nazwa pliku odpowiada wzorcowi powłoki wzorzec. Metaznaki nie traktują specjalnie ‘/’ lub ‘.’; tak więc na przykład,
 +
*'''find . -path ’./sr*sc’''' wypisze wpis katalogowy o nazwie ’./src/misc’ (jeśli taki istnieje). Aby zignorować całe drzewo katalogowe, użyj -prune. Na przykład, aby pominąć katalog ‘src/emacs’ i wszystkie jego pliki oraz wypisać nazwy innych znalezionych plików, użyj: ''find . -path ’./src/emacs’ -prune -o'-print''
 +
*'''-perm prawa''' bity praw pliku są dokładnie równe prawom (ósemkowym lub symbolicznym). Prawa symboliczne używają 0 jako punktu wyjścia.
 +
*'''-perm -prawa''' wszystkie bity prawa są ustawione dla pliku.
 +
*'''-perm +prawa''' któryś z bitów praw jest ustawiony dla pliku.
 +
*'''-regex wzorzec''' nazwa pliku odpowiada wyrażeniu regularnemu wzorzec. Dopasowanie stosuje się do całej ścieżki, nie dla przeszukiwanej. Na przykład, aby dopasować plik o nazwie ‘./fubar3’, możesz użyć wyrażenia regularnego ‘.*bar’ lub ‘.*b.*3’.
 +
*'''-size n[bckw]''' plik zajmuje n jednostek miejsca. Jednostki to domyślnie 512-bajtowe bloki. Jeśli doklejona jest litera ‘c’, jest to n bajtów, jeśli ‘k’, kilobajtów, jeśli ‘w’, dwubajtówych słów. Rozmiar nie wlicza niebezpośrednich bloków, lecz liczy bloki w plikach ‘sparse’, które w rzeczywistości nie są zajęte.
 +
*'''-true''' Zawsze prawda.
 +
*'''-type c''' plik jest typu c:
 +
**'''b''' blokowy (buforowany) plik specjalny
 +
**'''c''' znakowy (niebuforowany) plik specjalny
 +
**'''d''' katalog
 +
**'''p''' łącze nazwane (FIFO)
 +
**'''f''' zwykły plik
 +
**'''l''' dowiązanie symboliczne
 +
**'''s''' gniazdo
 +
*'''-uid n''' Numeryczny UID pliku to n.
 +
*'''-used n''' do pliku ostatnio dostano się n dni po zmianie jego statusu.
 +
*'''-user unazwa''' właścicielem pliku jest użytkownik unazwa (numeryczny UID jest tu dozwolony).
 +
*'''-xtype c''' jest to to samo co -type, chyba że plik jest dowiązaniem symbolicznym. Dla dowiązań symbolicznych: jeśli nie podano -follow, jest prawdziwe gdy plik jest dowiązaniem do pliku typu c; jeśli podano -follow, jest prawdziwe, jeśli c to ‘l’. Innymi słowy, dla dowiązań symbolicznych -xtype sprawdza typ pliku, którego nie sprawdza -type.
  
*+n dla większych niż n,
+
=== Akcje ===
*-n dla mniejszych niż n,
+
 
*n dla równych n.
+
*'''-exec polecenie ;''' wykonuje polecenie; prawdziwe jeśli zwrócony został status 0. Wszelkie następne argumenty find są brane za argumenty polecenia, aż nie zostanie napotkany argument, składający się z ‘;’. Łańcuch ‘{}’ jest podmieniany na obecnie przetwarzaną nazwę pliku. Obydwie te konstrukcje być może będą wymagały wycytowania (znakiem ‘\’) aby uchronić je przed rozwinięciem przez powłokę. Polecenie jest wykonywane w katalogu startowym.
*-amin n dostęp do pliku nastąpił ostatnio n minut temu.
+
*'''-fls plik prawdziwe;''' podobne do -ls, lecz zapisuje do pliku jak -fprint.
*-anewer plik do pliku ostatnio dostano się wcześniej niż plik został zmodyfikowany. -anewer podlega —-follow tylko jeśli -follow pojawia się w linii komend przed -anewer.
+
*'''-fprint plik prawdziwe;''' wypisuje pełną nazwę pliku do pliku. Jeśli plik nie istnieje, zostanie utworzony; jeśli istnieje, zostanie obcięty. Nazwy plików ‘‘/dev/stdout’’ i ‘‘/dev/stderr’’ są traktowane osobno; odnoszą się one odpowiednio do standardowego wyjścia i standardowego wyjścia błędów.
*-atime n do pliku dostano się po raz ostatni n*24 godzin temu.
+
*'''-fprint0 plik prawdziwe;''' podobne do -print0, lecz zapisuje do pliku, podobnie jak -fprint.
*-cmin n status pliku został zmieniony n minut temu.
+
*'''-fprintf plik format prawdziwe;''' podobne do -printf, lecz zapisuje do pliku, podobnie jak -fprint.
*-cnewer plik status pliku był ostatnio zmieniony wcześniej niż zmodyfikowano plik. -cnewer podlega -follow tylko jeśli -follow pojawia się w linii komend przed -cnewer.
+
*'''-ok polecenie ;''' podobne do -exec, lecz pyta wpierw użytkownika (na standardowym wejściu); jeśli odpowiedź nie rozpoczyna się od ‘y’ lub ‘Y’, nie uruchamia polecenia i zwraca fałsz.
*-ctime n status pliku zmienił się ostatnio n*24 godzin temu.
+
*'''-print prawdziwe;''' wypisuje pełną nazwę pliku na standardowe wyjście. Za nazwą daje nową linię.
*-empty plik jest pusty i jest albo plikiem regularnym, albo katalogiem.
+
*'''-print0 prawdziwe;''' wypisje pełną nazwę pliku na standardowe wyjście. Za nazwą daje znak null. Umożliwia to poprawne wyświetlenie plików, zawierających w nazwach znaki nowej linii w programach, przetwarzających wyjście finda.
*-false zawsze fałszywe.
+
*'''-printf format prawdziwe;''' wypisuje format na standardowe wyjście, interpretując sekwencje specjalne ‘\’ i dyrektywy ‘%’. Szerokości pól i precyzje mogą być podawane dokładnie jak w printf(3) z C. W przeciwieństwie do -print, -printf nie dodaje nowej linii do końca łańcucha. Sekwencje specjalne i dyrektywy to:
*-fstype typ plik jest na systemie plików o typie typ. Prawidłowe typy systemów plików różnią się na różnych wersjach Uniksa; ich niekompletna lista, która jest przyjmowana w części systemów to: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Aby zobaczyć typy twoich systemów plików, użyj -printf z dyrektywą %F.
+
**'''\a''' Dzwonek.
*-gid n numeryczny GID pliku to n.
+
**'''\b''' Backspace.
*-group nazwag plik należy do grupy nazwag (numeryczny GID jest dopuszczalny).
+
**'''\c''' Wstrzymuje wtypisywanie tego formatu i natychmiast wymiata wyjście.
*-ilname pattern podobne do -lname, lecz dopasowania są niewrażliwe na rozmiar liter.
+
**'''\f''' Form feed.
*-iname pattern podobne do -name, lecz dopasowanie jest niewrażliwe na rozmiar liter. Na przykład wzorce ‘fo*’ i ‘F??’ dopasują się do nazw ‘Foo’, ‘FOO’, ‘foo’, ‘fOo’, itd.
+
**'''\n''' Nowa linia.
*-inum n plik ma numer iwęzła n.
+
**'''\r''' Powrót karetki.
*-ipath wzorzec podobne do -path, lecz dopasowanie jest niewrażliwe na rozmiar liter.
+
**'''\t''' Tabulacja pozioma.
*-iregex wzorzec podobne do -regex, lecz dopasowanie jest niewrazliwe na rozmiar liter.
+
**'''\v''' Tabulacja pionowa.
*-links n plik ma n dowiązań.
+
**'''\\''' Literalny lewy ukośnik (\).
*-lname wzorzec plik jest dowiązaniem symbolicznym, którego zawartość odpowiada wzorcowi powłoki wzorzec. Metaznaki nie traktują specjalnie /’ i ‘.’.
+
**'''‘\’''' za którym następuje dowolny inny znak, jest traktowany jak zwykły znak, więc są wypisywane obydwa.
*-mmin n dane pliku były ostatnio modyfikowane n minut temu.
+
**'''%%''' Literalny znak procenta.
*-mtime n dane pliku były ostatnio modyfikowane n*24 godzin temu.
+
**'''%a''' Ostatni czas dostępu do pliku w formacie zwracanym przez funkcję ctime(3).
*-name wzorzec podstawa nazwy pliku (z usuniętą ścieżką i poprzedzającymi katalogami) odpowiada wzorcowi powłoki wzorzec. Metaznaki (‘*, ‘?’, ‘[]’) nie odpowiadają ‘.’ na początku nazwy pliku. Aby zignorować katalogi i pliki im podległe, użyj -prune; zobacz przykład w opisie -path.
+
**%Ak Ostatni czas dostępu do pliku, w formacie okreslonym przez k, którym może być @’, lub dyrektywa dla funkcji C strftime(3). Możliwe wartości k są wymienione niżej; niektóre z nich mogą nie być dostępne na wszystkich systemach z powodu różnic w strftime(3) między systemami.
*-newer plik plik został zmodyfikowany wcześniej niż plik. -newer podlega -follow tylko jeśli -follow znajduje się w linii komend przed -newer.
+
**'''@''' Sekundy od 1 stycznia, 1970, 00:00 GMT.
*-nouser do numerycznego UID pliku nie pasuje żaden użytkownik.
+
 
*-nogroup do numerycznego GID pliku nie pasuje żadna grupa.
+
=== Pola czasowe ===
*-path wzorzec nazwa pliku odpowiada wzorcowi powłoki wzorzec. Metaznaki nie traktują specjalnie ‘/’ lub ‘.’; tak więc na przykład,
+
 
*find . -path ’./sr*sc’ wypisze wpis katalogowy o nazwie ’./src/misc’ (jeśli taki istnieje). Aby zignorować całe drzewo katalogowe, użyj -prune. Na przykład, aby pominąć katalog ‘src/emacs’ i wszystkie jego pliki oraz wypisać nazwy innych znalezionych plików, użyj:
+
*'''H''' godzina (00..23)
*find . -path ’./src/emacs’ -prune -o -print
+
*'''I''' godzina (01..12)
*-perm prawa bity praw pliku są dokładnie równe prawom (ósemkowym lub symbolicznym). Prawa symboliczne używają 0 jako punktu wyjścia.
+
*'''k''' godzina ( 0..23)
*-perm -prawa wszystkie bity prawa są ustawione dla pliku.
+
*'''l''' godzina ( 1..12)
*-perm +prawa któryś z bitów praw jest ustawiony dla pliku.
+
*'''M''' minuta (00..59)
*-regex wzorzec nazwa pliku odpowiada wyrażeniu regularnemu wzorzec. Dopasowanie stosuje się do całej ścieżki, nie dla przeszukiwanej. Na przykład, aby dopasować plik o nazwie ‘./fubar3’, możesz użyć wyrażenia regularnego ‘.*bar’ lub ‘.*b.*3’.
+
*'''p''' localowe AM lub PM
*-size n[bckw] plik zajmuje n jednostek miejsca. Jednostki to domyślnie 512-bajtowe bloki. Jeśli doklejona jest litera ‘c’, jest to n bajtów, jeśli ‘k’, kilobajtów, jeśli ‘w’, dwubajtówych słów. Rozmiar nie wlicza niebezpośrednich bloków, lecz liczy bloki w plikach ‘sparse’, które w rzeczywistości nie są zajęte.
+
*'''r''' czas, 12-godzinny (gg:mm:ss [AP]M)
*-true Zawsze prawda.
+
*'''S''' sekunda (00..61)
*-type c plik jest typu c:
+
*'''T''' czas, 24-godzinny (gg:mm:ss)
* b blokowy (buforowany) plik specjalny
+
*'''X''' lokalna reprezentacja czasu (G:M:
* c znakowy (niebuforowany) plik specjalny
+
*'''Z''' strefa czasowa (np. EDT), lub nic jeśli nie da się jej określić
* d katalog
+
 
* p łącze nazwane (FIFO)
+
=== Pola daty ===
* f zwykły plik
+
 
* l dowiązanie symboliczne
+
*'''a''' lokalny skrót nazwy tygodnia (Sun..Sat)
* s gniazdo
+
*'''A''' lokalna pełna nazwa tygodnia, zmiennej długości (Sunday..Saturday)
*-uid n Numeryczny UID pliku to n.
+
*'''b''' lokalna skrócona nazwa miesiąca (Jan..Dec)
*-used n do pliku ostatnio dostano się n dni po zmianie jego statusu.
+
*'''B''' lokalna pełna nazwa miesiąca, zmiennej długości (January..December)
*-user unazwa właścicielem pliku jest użytkownik unazwa (numeryczny UID jest tu dozwolony).
+
*'''c''' lokalna data i czas (Sat Nov 04 12:02:33 EST 1989)
*-xtype c jest to to samo co -type, chyba że plik jest dowiązaniem symbolicznym. Dla dowiązań symbolicznych: jeśli nie podano -follow, jest prawdziwe gdy plik jest dowiązaniem do pliku typu c; jeśli podano -follow, jest prawdziwe, jeśli c to ‘l’. Innymi słowy, dla dowiązań symbolicznych -xtype sprawdza typ pliku, którego nie sprawdza -type.
+
*'''d''' dzień miesiąca (01..31)
 +
*'''D''' data (mm/dd/rr)
 +
*'''h''' to samo co b
 +
*'''j''' dzień roku (001..366)
 +
*'''m''' miesiąc (01..12)
 +
*'''U''' numer tygodnia w roku, z niedzielą liczoną jako pierwszy dzień tygodnia (00..53)
 +
*'''w''' dzień tygodnia (0..6)
 +
*'''W''' numer tygodnia w roku, licząc z poniedziałkiem, jako pierwszym dniem tygodnia (00..53)
 +
*'''x''' lokalna reprezentacja daty (mm/dd/rr)
 +
*'''y''' ostatnie dwie cyfry roku (00..99)
 +
*'''Y''' rok (1970…)
 +
*'''%b''' Rozmiar pliku w 512-bajtowych blokach (zaokrąglanych w górę).
 +
*'''%c''' Ostatni czas zmiany statusu pliku, w formacie zwróconym przez funkcję ctime(3) z C.
 +
*'''%Ck''' Ostatni czas zmiany statusu pliku w formacie określonym przez k, w taki sam sposób, jak dla %A.
 +
*'''%d''' Głębokość pliku w drzewie katalogowym; 0 oznacza plik w argumencie wiersza poleceń.
 +
*'''%f''' Nazwa pliku z usuniętymi początkowymi katalogami (tylko ostatni element nazwy).
 +
*'''%F''' Rodzaj systemu plików, na którym znajduje się plik; wartość ta może być używana do -fstype.
 +
*'''%g''' Nazwa grupy pliku lub numeryczny GID jeśli grupa nie ma nazwy.
 +
*'''%G''' Numeryczny GID pliku.
 +
*'''%h''' Początkowe katalogi nazwy pliku (wszystko poza ostatnim elementem).
 +
*'''%H''' Argument wiersza poleceń, pod którym plik został znaleziony.
 +
*'''%i''' Numer iwęzła pliku (dziesiętnie).
 +
*'''%k''' Rozmiar pliku w 1K blokach (zaokrąglane w górę).
 +
*'''%l''' Obiekt dowiązania symbolicznego (pusty łańcuch, jeśli plik nie jest dowiązaniem symbolicznym).
 +
*'''%m''' Prawa pliku (ósemkowo).
 +
*'''%n''' Liczba twardych dowiązań do pliku.
 +
*'''%p''' Nazwa pliku.
 +
*'''%P''' Nazwa pliku z usuniętą z początku nazwą argumentu wiersza poleceń, dla którego ją znaleziono.
 +
*'''%s''' Rozmiar pliku w bajtach.
 +
*'''%t''' Ostatni czas modyfikacji pliku w formacie zwróconym przez funkcję ctime(3) z C.
 +
*'''%Tk''' Ostatni czas modyfikacji pliku, w formacie określonym przez k, podobnie jak dla %A.
 +
*'''%u''' Nazwa użytkownika pliku, lub numeryczny UID, jeśli użytkownik nie ma nazwy.
 +
*'''%U''' Numeryczny UID pliku.
 +
*Znak ‘'''%'''’, za którym następuje dowolny inny znak jest usuwany (lecz drugi znak jest drukowany).
 +
*'''-prune''' jeśli nie podano -depth, prawdziwe; program nie wchodzi w głąb bieżącego katalogu. Jeśli podano -depth, fałszywe; bez rezultatu.
 +
*'''ls prawdziwe;''' listuje plik bieżący w formacie ‘ls ils’ na standardowe wyjście. Liczniki bloków są 1K blokami, chyba że ustawiono zmienną środowiskową POSIXLY_CORRECT, kiedy używane będą 512-bajtowe bloki.
 +
 
 +
=== Wymienione w malejącym priorytecie ===
 +
 
 +
*( wyraz ) wymusza pierwszeństwo.
 +
*! wyraż prawdziwe jeśli wyraż jest fałszywe
 +
*-not wyrazż to samo co ! wyraż.
 +
*wyraż1 wyraż2 And (jawny); wyraż2 nie jest analizowany jesli wyraż1 jest fałszywe.
 +
*wyraż1 -a wyraż2 to samo, co wyraż1 wyraż2.
 +
*wyraż1 -and wyraż2 to samo, co wyraż1 wyraż2.
 +
*wyraż1 -o wyraż2 Or; wyraż2 nie jest analizowane jeśli wyraż1 jest prawdziwe.
 +
*wyraż1 -or wyraż2 to samo, co wyraż1 -o wyraż2.
 +
*wyraż1 , wyraż2 Lista; zarówno wyraż1 jak i wyraż2 zawsze są analizowane. Wartość wyraż1 jest niszczona; wartość listy jest wartością wyraż2.

Aktualna wersja na dzień 15:56, 20 kwi 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych