.\" -*- coding: UTF-8 -*- .\" -*- nroff -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FIND 1 '\" t .SH NAZWA find \- szuka plików w hierarchii katalogowej .SH SKŁADNIA \fBfind\fP [\fB\-H\fP] [\fB\-L\fP] [\fB\-P\fP] [\fB\-D\fP \fIopcje\-debugowania\fP] [\fB\-O\fP\fIpoziom\fP] [\fIpunkt\-początkowy\fP...] [\fIwyrażenie\fP] . .SH OPIS Ta strona podręcznika man opisuje wersję GNU programu \fBfind\fP. GNU \fBfind\fP przeszukuje drzewo katalogowe, zakorzenione w każdej z podanych punktów początkowych. Wykonuje przy tym podane wyrażenie od lewej do prawej, zgodnie z zasadami priorytetów (rozdział OPERATORY), aż do ustalenia wyniku (lewa strona jest fałszywa dla operacji \fIand\fP, a prawdziwa dla \fIor\fP), co powoduje przejście do następnej nazwy pliku. Jeśli nie podano punktu początkowego, przyjmuje się ".". .PP W przypadku używania \fBfind\fP w środowisku, w którym istotne jest bezpieczeństwo (np. przy przeszukiwaniu katalogów, które są zapisywalne dla innych użytkowników), należy zapoznać się z rozdziałem "Security Considerations" w dokumentacji findutils, pod nazwą \fBFinding Files\fP. Dokument ten (w języku angielskim) jest bardziej szczegółowy i opisowy niż niniejsza strona podręcznika systemowego, więc może okazać się przydatniejszym źródłem informacji. . .SH OPCJE Opcje \fB\-H\fP, \fB\-L\fP i \fB\-P\fP kontrolują sposób traktowania dowiązań symbolicznych. Kolejne argumenty wiersza poleceń powinny być plikami lub katalogami do przeszukania, aż do pierwszego argumentu rozpoczynającego się znakiem "\-" albo argumentu "(" lub "!". Argumenty te (razem z następnymi) są rozpoznawane jako wyrażenie opisujące to, co ma zostać przeszukane. Jeśli nie zostanie podana ścieżka, użyty będzie bieżący katalog. W przypadku braku wyrażenia, używane jest domyślne wyrażenie \fB\-print\fP (lecz wówczas i tak zapewne lepsze byłoby skorzystanie z \fB\-print0\fP). .PP This manual page talks about `options' within the expression list. These options control the behaviour of \fBfind\fP but are specified immediately after the last path name. The five `real' options \fB\-H\fP, \fB\-L\fP, \fB\-P\fP, \fB\-D\fP and \fB\-O\fP must appear before the first path name, if at all. A double dash \fB\-\-\fP could theoretically be used to signal that any remaining arguments are not options, but this does not really work due to the way \fBfind\fP determines the end of the following path arguments: it does that by reading until an expression argument comes (which also starts with a `\-'). Now, if a path argument would start with a `\-', then \fBfind\fP would treat it as expression argument instead. Thus, to ensure that all start points are taken as such, and especially to prevent that wildcard patterns expanded by the calling shell are not mistakenly treated as expression arguments, it is generally safer to prefix wildcards or dubious path names with either `./' or to use absolute path names starting with '/'. Alternatively, it is generally safe though non\-portable to use the GNU option \fB\-files0\-from\fP to pass arbitrary starting points to \fBfind\fP. .IP \fB\-P\fP Nigdy nie podąża za dowiązaniami symbolicznymi. Jest to zachowanie domyślne. Gdy \fBfind\fP sprawdza lub wypisuje informacje o plikach, a jest on dowiązaniem symbolicznym, to użyta informacja powinna być wzięta z właściwości samego dowiązania symbolicznego. .IP \fB\-L\fP Podąża za dowiązaniami symbolicznymi. Gdy \fBfind\fP sprawdza lub wypisuje informacje o plikach, to powinny być one wzięte z właściwości pliku, na który wskazuje dowiązanie symboliczne, a nie z samego dowiązania (chyba, że jest to zerwane dowiązanie symboliczne lub \fBfind\fP nie może sprawdzić pliku, na który wskazuje dowiązanie). Użycie tej opcji implikuje \fB\-noleaf\fP. Jeśli użyje się później \fB\-P\fP, to \fB\-noleaf\fP wciąż będzie działać. Jeśli działa \fB\-L\fP, a \fBfind\fP podczas wyszukiwania odkryje dowiązanie symboliczne do podkatalogu, to przeszukany zostanie podkatalog, na który wskazuje dowiązanie. .IP When the \fB\-L\fP option is in effect, the \fB\-type\fP predicate will always match against the type of the file that a symbolic link points to rather than the link itself (unless the symbolic link is broken). Actions that can cause symbolic links to become broken while \fBfind\fP is executing (for example \fB\-delete\fP) can give rise to confusing behaviour. Using \fB\-L\fP causes the \fB\-lname\fP and \fB\-ilname\fP predicates always to return false. .IP \fB\-H\fP Nie podąża za dowiązaniami symbolicznymi, z wyjątkiem przetwarzania argumentów wiersza polecenia. Gdy \fBfind\fP sprawdza lub wypisuje informacje o plikach, powinny być one brane z właściwości samego dowiązania symbolicznego. Jedynym wyjątkiem jest sytuacja, gdy plik podany w wierszu polecenia jest dowiązaniem symbolicznym i może być ono rozwiązane. Wówczas informacja jest brana z tego, na co wskazuje dowiązanie (tj. podąża się za dowiązaniem). Informacja z samego dowiązania jest używana w razie, gdy plik, na który wskazuje dowiązanie nie może być sprawdzony. Gdy działa \fB\-H\fP i jedna ze ścieżek podanych w wierszu polecenia jest dowiązaniem symbolicznym do katalogu, sprawdzana jest zawartość tego katalogu (zapobiegnie temu skorzystanie z \fB\-maxdepth\ 0\fP). .P Jeśli podano więcej niż jedną z opcji \fB\-H\fP, \fB\-L\fP i \fB\-P\fP, każda przesłania poprzednią \- liczy się ostatnia podana w wierszu polecenia, Ponieważ opcja \fB\-P\fP jest domyślna, powinno się ją uznać za działającą, chyba że podano \fB\-H\fP lub \fB\-L\fP. GNU \fBfind\fP często sprawdza status plików podczas przetwarzania samego wiersza polecenia, przed rozpoczęciem właściwego przeszukiwania. Opcje te mogą również wpływać na sposób przetworzenia argumentów. Co więcej, istnieje wiele testów, które porównują pliki z wiersza polecenia do aktualnie rozważanego pliku. W każdym przypadku, plik podany w wierszu polecenia będzie sprawdzony i niektóre z jego właściwości zostaną zachowane. Jeżeli nazwany plik jest w rzeczywistości dowiązaniem symbolicznym, a działa opcja \fB\-P\fP (lub nie podano \fB\-H\fP, ani \fB\-L\fP), to informacja użyta do porównania zostanie wzięta z właściwości dowiązania symbolicznego. W przeciwnym razie, właściwości będą wzięte z pliku, na który wskazuje dowiązanie. Jeżeli \fBfind\fP nie może podążyć za dowiązaniem (np. ponieważ ma niewystarczające uprawnienia lub dowiązanie wskazuje na nieistniejący plik) zostaną użyte właściwości samego dowiązania. .P When the \fB\-H\fP or \fB\-L\fP options are in effect, any symbolic links listed as the argument of \fB\-newer\fP will be dereferenced, and the timestamp will be taken from the file to which the symbolic link points. The same consideration applies to \fB\-newerXY\fP, \fB\-anewer\fP and \fB\-cnewer\fP. Opcja \fB\-follow\fP ma podobne działanie do \fB\-L\fP, choć działa tylko w miejscu pojawienia się (tj. jeśli \fB\-L\fP nie jest użyte, a skorzystano z \fB\-follow\fP, to wszystkie dowiązania symboliczne pojawiające się w wierszu poleceń za \fB\-follow\fP zostaną rozwiązane, lecz umieszczone wcześniej \- nie). .IP "\-D debugopts" Wyświetla informacje diagnostyczne \- może okazać się przydatna do zdiagnozowania przypadków, gdy \fBfind\fP nie robi tego czego od niego oczekujemy. Lista opcji debugowania powinna być oddzielona przecinkami. Nie gwarantuje się kompatybilności opcji debugowania pomiędzy wydaniami findutils. Pełną listę prawidłowych opcji debugowania wyświetli polecenie \fBfind \-D\ help\fP. Są to między innymi: .RS .IP exec Wyświetla informacje diagnostyczne związane z \-exec, \-execdir, \-ok i \-okdir. .IP opt Wyświetla informacje diagnostyczne związane z optymalizację drzewka wyrażeń; patrz opcja \fB\-O\fP. .IP rates Wyświetla podsumowanie wskazujące częstość sukcesu lub porażki każdego wskazania. .IP search Informuje o przechodzeniu przez drzewo katalogów. .IP stat Wyświetla komunikaty o plikach sprawdzanych przez wywołania systemowe \fBstat\fP i \fBlstat\fP. Program \fBfind\fP stara się zminimalizować liczbę takich wywołań. .IP tree Wyświetla drzewko wyrażeń w formie oryginalnej i zoptymalizowanej. .IP all Włącza wszystkie inne opcje debugowania (poza \fBhelp\fP). .IP help Objaśnia opcje debugowania. .RE .IP \fB\-O\fP\fIpoziom\fP Włącza optymalizację zapytań. Program \fBfind\fP zmienia kolejność testów, aby przyspieszyć wykonanie przy zachowaniu efektu końcowego; tj. nie zmienia się wskazań z efektami ubocznymi w stosunku do każdego innego. Optymalizacje są przeprowadzane zgodnie z poniższymi poziomami optymalizacji. .RS .IP 0 Odpowiednik poziomu optymalizacji 1. .IP 1 Jest to domyślny poziom optymalizacji i odnosi się do tradycyjnego zachowania. Kolejność wyrażeń jest zmieniana w ten sposób, że testy działające tylko na nazwach plików (np. \fB\-name\fP lub \fB\-regex\fP) są wykonywane jako pierwsze. .IP 2 Any \fB\-type\fP or \fB\-xtype\fP tests are performed after any tests based only on the names of files, but before any tests that require information from the inode. On many modern versions of Unix, file types are returned by \fBreaddir()\fP and so these predicates are faster to evaluate than predicates which need to stat the file first. If you use the \fB\-fstype\ \fP\fIFOO\fP predicate and specify a filesystem type \fIFOO\fP which is not known (that is, present in `/etc/mtab') at the time \fBfind\fP starts, that predicate is equivalent to \fB\-false\fP. .IP 3 Na tym poziomie optymalizacji, włączona jest pełna optymalizacja, działająca w oparciu o koszt zapytań. Kolejność testów jest modyfikowana w taki sposób, aby tanie (szybkie) testy były przeprowadzane wcześniej, a droższe \- później, jeśli to konieczne. Wewnątrz każdej grupy kosztowej, wskazania są przeprowadzane wcześniej lub później, zgodnie z prawdopodobieństwem ich powodzenia. Przy \fB\-o\fP, wskazania o większym prawdopodobieństwie sukcesu są przeprowadzane wcześniej, a przy \fB\-a\fP, wcześniej wykonywane są wskazania o większym prawdopodobieństwie niepowodzenia. .RE .IP Optymalizator działający w oparciu o koszty, ma z góry przyjęte założenie o prawdopodobieństwie powodzenia danego testu. W niektórych przypadkach, prawdopodobieństwo bierze pod uwagę naturę testu (np. \fB\-type\ f\fP powinien kończyć się sukcesem częściej niż \fB\-type\ c\fP). Optymalizator jest jeszcze w fazie kalkulacji. Jeśli nie poprawi to wydajności programu \fBfind\fP, zostanie ponownie usunięty. Podobnie, optymalizacje, które udowodnią swą rzetelność, spójność i efektywność, mogą w przyszłości zostać włączone na niższym poziomie optymalizacyjnym. Jednak domyślne zachowanie (poziom optymalizacji 1) nie zmieni się w wydaniach 4.3.x. Zestaw testów findutils wykonuje wszystkie testy \fBfind\fP na każdym poziomie optymalizacji, aby mieć pewność, że wyniki pozostają te same. . .SH WYRAŻENIE Część wiersza poleceń po liście punktów początkowych jest \fIwyrażeniem\fP. Jest to rodzaj określenia zapytania, opisującego w jaki sposób dopasowywać pliki i co z nimi zrobić po dopasowaniu. Wyrażenie składa się z kilku rzeczy: .IP Testy Testy zwracają prawdę lub fałsz, zwykle na podstawie jakiejś własności rozważanego pliku. Na przykład test \fB\-empty\fP jest prawdziwy tylko, gdy bieżący plik jest pusty. .IP Akcje Akcje mają efekty poboczne (takie jak wypisywanie czegoś na standardowym wyjściu) i zwracają prawdę lub fałsz, zwykle w zależności od tego, czy się powiodą. Akcje \fB\-print\fP wypisuje na przykład nazwę bieżącego pliku na standardowym wyjściu. .IP "Opcje globalne" Opcje globalne wpływają na działanie testów i akcji podanych w dowolnej części wiersza poleceń. Opcje globalne zawsze zwracają prawdę. Na przykład opcja \fB\-depth\fP powoduje, że \fBfind\fP przechodzi przez system plików, zagłębiając się najpierw w katalogach. .IP "Opcje pozycyjne" Opcje pozycyjne wpływają tylko na testy lub akcje, które występują za nimi. Opcja pozycyjne zawsze zwracają prawdę. Na przykład opcja \fB\-regextype\fP jest pozycyjna, określa dialekt wyrażeń regularnych, dla wyrażeń regularnych, które pojawią się dalej w wierszu polecenia. .IP Operatory Operatory łączą inne rzeczy w wyrażeniu. Obejmują na przykład \fB\-o\fP (oznaczające logiczne LUB \[em] OR) oraz \fB\-a\fP (oznaczające logiczne ORAZ \[em] AND). Tam, gdzie nie podano operatora, przyjmowane jest \fB\-a\fP. .P Akcja \fB\-print\fP jest wykonywana na wszystkich plikach, dla których prawdziwe jest całe wyrażenie, chyba że zawiera ono akcję inną niż \fB\-prune\fP lub \fB\-quit\fP. Akcjami wstrzymującymi domyślne \fB\-print\fP są: \fB\-delete\fP, \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP, \fB\-okdir\fP, \fB\-fls\fP, \fB\-fprint\fP, \fB\-fprintf\fP, \fB\-ls\fP, \fB\-print\fP i \fB\-printf\fP. Akcja \fB\-delete\fP działa również jak opcja (ponieważ wymusza \fB\-depth\fP). .SS "OPCJE POZYCYJNE" Opcje pozycyjne zawsze zwracają prawdę. Wpływają jedynie na testy, które znajdują się za nimi w wierszu polecenia. .IP \fB\-daystart\fP Mierzy czasy (dla \fB\-amin\fP, \fB\-atime\fP, \fB\-cmin\fP, \fB\-ctime\fP, \fB\-mmin\fP i \fB\-mtime\fP) od dziś, a nie od 24 godzin temu. Opcja ta wpływa jedynie na testy, pojawiające się później w wierszu polecenia. .IP \fB\-follow\fP Przestarzałe, proszę zamiast tego użyć opcji \fB\-L\fP. Rozwiązuje dowiązania symboliczne. Implikuje \fB\-noleaf\fP. Opcja \fB\-foolow\fP działa jedynie na testy pojawiające się w wierszu polecenia za nią. O ile nie poda się opcji \fB\-H\fP lub \fB\-L\fP, pozycja opcji \fB\-follow\fP zmienia zachowanie wskazania \fB\-newer\fP \- pliki będące argumentami \fB\-newer\fP zostaną rozwiązane, jeśli są dowiązaniami symbolicznymi. To samo dotyczy opcji \fB\-newer\fP\fIXY\fP, \fB\-anewer\fP and \fB\-cnewer\fP. Podobnie, wskazanie \fB\-type\fP zostanie zawsze dopasowane do pliku wskazanego przez dowiązanie symboliczne, zamiast do samego dowiązania. Użycie \fB\-follow\fP powoduje, że wskazania \fB\-lname\fP i \fB\-ilname\fP zawsze zwracają fałsz. .IP "\fB\-regextype\fP \fItyp\fP" Changes the regular expression syntax understood by \fB\-regex\fP and \fB\-iregex\fP tests which occur later on the command line. To see which regular expression types are known, use \fB\-regextype\ help\fP. The Texinfo documentation (see \fBSEE\fP \fBALSO\fP) explains the meaning of and differences between the various types of regular expression. .IP "\fB\-warn\fP, \fB\-nowarn\fP" Turn warning messages on or off. These warnings apply only to the command line usage, not to any conditions that \fBfind\fP might encounter when it searches directories. The default behaviour corresponds to \fB\-warn\fP if standard input is a tty, and to \fB\-nowarn\fP otherwise. If a warning message relating to command\-line usage is produced, the exit status of \fBfind\fP is not affected. If the \fBPOSIXLY_CORRECT\fP environment variable is set, and \fB\-warn\fP is also used, it is not specified which, if any, warnings will be active. .SS "OPCJE GLOBALNE" Opcje globalne zawsze zwracają prawdę. Opcje globalne działają nawet wobec testów, które występują wcześniej w wierszu polecenia. Aby uniknąć zamieszania, opcje globalne należy podawać w wierszu polecenia po liście punktów początkowych, a przed pierwszymi testami, opcjami pozycyjnymi lub akcjami. Jeśli poda się opcję globalną w innym miejscu, \fBfind\fP wypisze ostrzeżenie, wyjaśniające że może być to mylące. Opcje globalne pojawiają się po liście punktów początkowych, zatem nie są opcjami tego samego typu jak np. \fB\-L\fP. .IP \fB\-d\fP Synonim \fB\-depth\fP, ze względu na kompatybilność z FreeBSD, NetBSD, MacOS X i OpenBSD. .IP \fB\-depth\fP Przetwarza zawartość każdego katalogu przed samym katalogiem jako takim. Akcja \fB\-delete\fP implikuje także \fB\-depth\fP. .IP "\-files0\-from \fIplik\fP" Read the starting points from \fIfile\fP instead of getting them on the command line. In contrast to the known limitations of passing starting points via arguments on the command line, namely the limitation of the amount of file names, and the inherent ambiguity of file names clashing with option names, using this option allows to safely pass an arbitrary number of starting points to \fBfind\fP. Using this option and passing starting points on the command line is mutually exclusive, and is therefore not allowed at the same time. The \fIfile\fP argument is mandatory. One can use \fB\-files0\-from\ \-\fP to read the list of starting points from the \fIstandard input\fP stream, and e.g. from a pipe. In this case, the actions \fB\-ok\fP and \fB\-okdir\fP are not allowed, because they would obviously interfere with reading from \fIstandard input\fP in order to get a user confirmation. The starting points in \fIfile\fP have to be separated by ASCII NUL characters. Two consecutive NUL characters, i.e., a starting point with a Zero\-length file name is not allowed and will lead to an error diagnostic followed by a non\-Zero exit code later. In the case the given \fIfile\fP is empty, \fBfind\fP does not process any starting point and therefore will exit immediately after parsing the program arguments. This is unlike the standard invocation where \fBfind\fP assumes the current directory as starting point if no path argument is passed. The processing of the starting points is otherwise as usual, e.g. \fBfind\fP will recurse into subdirectories unless otherwise prevented. To process only the starting points, one can additionally pass \fB\-maxdepth\ 0\fP. Further notes: if a file is listed more than once in the input file, it is unspecified whether it is visited more than once. If the \fIfile\fP is mutated during the operation of \fBfind\fP, the result is unspecified as well. Finally, the seek position within the named \fIfile\fP at the time \fBfind\fP exits, be it with \fB\-quit\fP or in any other way, is also unspecified. By "unspecified" here is meant that it may or may not work or do any specific thing, and that the behavior may change from platform to platform, or from \fBfindutils\fP release to release. .IP "\fB\-help\fP, \fB\-\-help\fP" Wypisuje sposób użycia \fBfind\fP z wiersza poleceń i kończy pracę programu. .IP \fB\-ignore_readdir_race\fP Zwykle \fBfind\fP wyświetla błąd, gdy nie uda mu się pobrać statusu pliku. Po podaniu tej opcji i usunięciu pliku pomiędzy odczytem przez \fBfind\fP nazwy pliku z katalogu i momentem próby pobrania statusu, błąd nie zostanie wyświetlony. Dotyczy to również plików i katalogów podanych w wierszu polecenia. Opcja ta zaczyna działać już przy odczycie wiersza polecenia, co oznacza, że nie da się przeszukiwać systemu plików częściowo z opcją włączoną i częściowo z wyłączoną (aby to zrobić, konieczne jest dwukrotne uruchomienie polecenia \fBfind\fP, jeden raz z opcją włączoną, a drugi \- z wyłączoną). Furthermore, \fBfind\fP with the \fB\-ignore_readdir_race\fP option will ignore errors of the \fB\-delete\fP action in the case the file has disappeared since the parent directory was read: it will not output an error diagnostic, and the return code of the \fB\-delete\fP action will be true. .IP "\fB\-maxdepth\fP \fIgłębokość\fP" Descend at most \fIlevels\fP (a non\-negative integer) levels of directories below the starting\-points. Using \fB\-maxdepth\ 0\fP means only apply the tests and actions to the starting\-points themselves. .IP "\fB\-mindepth\fP \fIgłębokość\fP" Nie stosuje testów lub akcji w poziomach niższych niż \fIgłębokość\fP (nieujemna liczba całkowita). Użycie \fBmindepth\ 1\fP oznacza przetwarzanie wszystkich plików poza punktami początkowymi. .IP \fB\-mount\fP Nie zagłębia się w katalogi na innych systemach plików. Jest to alternatywna nazwa dla \fB\-xdev\fP, stworzona dla zgodności z innymi wersjami \fBfind\fP. .IP \fB\-noignore_readdir_race\fP Wyłącza efekt opcji \fB\-ignore_readdir_race\fP. .IP \fB\-noleaf\fP Zakazuje optymalizacji wykonywanej przez zakładanie, że katalogi zawierają o dwa podkatalogi mniej niż ich licznik dowiązań zwykłych (twardych). Opcja ta jest wymagana podczas przeszukiwania systemów plików, które nie używają uniksowej konwencji wiązania katalogów, takich jak systemy plików CD\-ROM, MS\-DOS czy wolumeny AFS. Każdy katalog w normalnym systemie uniksowym zawiera przynajmniej dwa twarde dowiązania: jego nazwę i ".". Dodatkowo, jego podkatalogi będą do niego dowiązane za pomocą ".." każdy. Gdy \fBfind\fP testuje katalog po zbadaniu funkcją stat o 2 mniej podkatalogów niż licznik dowiązań, wie, że reszta wpisów jest niekatalogowa (są to "liście" \- "leaf" w drzewie katalogów). Jeśli testowane mają być tylko nazwy plików, to nie ma potrzeby ich sprawdzać; daje to znaczące przyspieszenie. .IP "\fB\-version\fP, \fB\-\-version\fP" Wypisuje wersję i kończy pracę. .IP \fB\-xdev\fP Nie zagłębia się w katalogi na innych systemach plików. .SS TESTY Niektóre testy np. \fB\-newer\fP\fIXY\fP i \fB\-samefile\fP pozwalają na porównanie pomiędzy aktualnie sprawdzanym plikiem i plikiem odniesienia podanym w wierszu polecenia. Gdy te testy są używane, interpretacja pliku odniesienia zależy od opcji \fB\-H\fP, \fB\-L\fP i \fB\-P\fP i podanej wcześniej \fB\-follow\fP, lecz plik odniesienia jest sprawdzany tylko raz, przy przetwarzaniu wiersza polecenia. Jeśli plik odniesienia nie może zostać sprawdzony (np. wywołanie systemowe \fBstat\fP(2) nie powiedzie się na nim), wyświetlany jest błąd, a \fBfind\fP wychodzi z niezerowym kodem zakończenia. .P Do testów (takich jak \fB\-amin\fP, \fB\-mtime\fP, \fB\-gid\fP, \fB\-inum\fP, \fB\-links\fP, \fB\-size\fP, \fB\-uid\fP i \fB\-used\fP) można podać argument numeryczny \fIn\fP jako .IP \fI+n\fP dla większych niż \fIn\fP, .IP \fI\-n\fP dla mniejszych niż \fIn\fP, .IP \fIn\fP dla równych \fIn\fP. . .P Obsługiwane testy: .IP "\fB\-amin\fP \fIn\fP" Dostęp do pliku nastąpił ostatnio wcześniej niż, dawniej niż lub dokładnie \fIn\fP minut temu. .IP "\-anewer \fIodniesienie\fP" Time of the last access of the current file is more recent than that of the last data modification of the \fIreference\fP file. If \fIreference\fP is a symbolic link and the \fB\-H\fP option or the \fB\-L\fP option is in effect, then the time of the last data modification of the file it points to is always used. .IP "\fB\-atime\fP \fIn\fP" Dostęp do pliku miał miejsce wcześniej niż, dawniej niż lub dokładnie \fIn\fP*24 godzin temu. Gdy find dowie się jak wiele okresów 24\-godzinnych temu dostano się do pliku, ignorowana jest część ułamkowa; tak więc aby dopasować \fB\-atime\ +1\fP, dostęp do pliku musiał być co najwyżej \fIdwa\fP dni temu. .IP "\fB\-cmin\fP \fIn\fP" Status pliku został zmieniony wcześniej niż, dawniej niż lub dokładnie \fIn\fP minut temu. .IP "\-cnewer \fIodniesienie\fP" Time of the last status change of the current file is more recent than that of the last data modification of the \fIreference\fP file. If \fIreference\fP is a symbolic link and the \fB\-H\fP option or the \fB\-L\fP option is in effect, then the time of the last data modification of the file it points to is always used. .IP "\fB\-ctime\fP \fIn\fP" Status pliku został zmieniony wcześniej niż, dawniej niż lub dokładnie \fIn\fP*24 godzin temu. Proszę zapoznać się z komentarzami do \fB\-atime\fP, aby zrozumieć wpływ zaokrąglenia na interpretację czasu modyfikacji pliku. .IP \fB\-empty\fP Plik jest pusty i jest albo zwykłym plikiem, albo katalogiem. .IP \fB\-executable\fP Dopasowuje pliki, które są wykonywalne i katalogi, które są przeszukiwalne (w sensie tłumaczenia nazw pliku) dla bieżącego użytkownika. Bierze pod uwagę listy kontroli dostępu (ACL) i inne zasady praw dostępu, które są ignorowane przez test \fB\-perm\fP. Ten test używa wywołania systemowego \fBaccess\fP(2) i może być zmylony przez serwery NFS używające mapowania UID (lub root\-squashing), gdyż wiele systemów implementuje \fBaccess\fP(2) w jądrze klienta i nie może użyć informacji mapowania UID po stronie serwera. Ponieważ test ten działa tylko w oparciu o wywołanie systemowe \fBaccess\fP(2), nie ma gwarancji, że plik dla którego test się powiódł, może być w rzeczywistości wykonany. .IP \fB\-false\fP Zawsze fałszywe. .IP "\fB\-fstype\fP \fItyp\fP" Plik jest na systemie plików o typie \fItyp\fP. 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: \fBufs\fP, \fB4.2\fP, \fB4.3\fP, \fBnfs\fP, \fBtmp\fP, \fBmfs\fP, \fBS51K\fP, \fBS52K\fP. Aby zobaczyć typy swoich systemów plików, należy użyć \-printf z dyrektywą %F. .IP "\fB\-gid\fP \fIn\fP" Numeryczny GID pliku, który wynosi mniej niż, więcej niż lub dokładnie \fIn\fP. .IP "\fB\-group\fP \fInazwag\fP" Plik należy do grupy \fInazwag\fP (numeryczny GID jest dopuszczalny). .IP "\fB\-ilname\fP \fIwzorzec\fP" Podobnie jak \fB\-lname\fP, lecz dopasowanie jest niezależne od wielkości znaków. Jeśli działa opcja \fB\-L\fP lub \fB\-follow\fP, test zwraca fałsz, chyba że dowiązanie symboliczne jest zerwane. .IP "\fB\-iname\fP \fIpattern\fP" Like \fB\-name\fP, but the match is case insensitive. For example, the patterns `fo*' and `F??' match the file names `Foo', `FOO', `foo', `fOo', etc. The pattern `*foo*` will also match a file called '.foobar'. .IP "\fB\-inum\fP \fIn\fP" Plik ma numer i\-węzła mniejszy niż, większy niż lub dokładnie równy \fIn\fP. Zwykle łatwiej jest użyć testu \fB\-samefile\fP. .IP "\fB\-ipath\fP \fIwzorzec\fP" Podobne do \fB\-path\fP, lecz dopasowanie jest niewrażliwe na rozmiar liter. .IP "\fB\-iregex\fP \fIwzorzec\fP" Podobne do \fB\-regex\fP, lecz dopasowanie jest niewrażliwe na rozmiar liter. .IP "\fB\-ilname\fP \fIpattern\fP" Patrz \fB\-ipath\fP. Ta alternatywa jest mniej przenośna niż wspomniana opcja. .IP "\fB\-links\fP \fIn\fP" Plik ma mniej niż, więcej niż lub dokładnie \fIn\fP dowiązań zwykłych (twardych). .IP "\fB\-lname\fP \fIwzorzec\fP" Plik jest dowiązaniem symbolicznym, którego zawartość odpowiada wzorcowi powłoki \fIwzorzec\fP. Metaznaki nie traktują specjalnie "/" i ".". Jeśli działa opcja \fB\-L\fP lub \fB\-follow\fP, to test zwraca fałsz, chyba że dowiązanie symboliczne jest zerwane. .IP "\fB\-mmin\fP \fIn\fP" Dane pliku były ostatnio modyfikowane wcześniej niż, dawniej niż lub dokładnie \fIn\fP minut temu. .IP "\fB\-mtime\fP \fIn\fP" File's data was last modified less than, more than or exactly \fIn\fP*24 hours ago. See the comments for \fB\-atime\fP to understand how rounding affects the interpretation of file modification times. .IP "\fB\-name\fP \fIwzorzec\fP" Base of file name (the path with the leading directories removed) matches shell pattern \fIpattern\fP. Because the leading directories are removed, the file names considered for a match with \fB\-name\fP will never include a slash, so `\-name a/b' will never match anything (you probably need to use \fB\-path\fP instead). A warning is issued if you try to do this, unless the environment variable \fBPOSIXLY_CORRECT\fP is set. The metacharacters (`*', `?', and `[]') match a `.\&' at the start of the base name (this is a change in findutils\-4.2.2; see section STANDARDS CONFORMANCE below). To ignore a directory and the files under it, use \fB\-prune\fP rather than checking every file in the tree; see an example in the description of that action. Braces are not recognised as being special, despite the fact that some shells including Bash imbue braces with a special meaning in shell patterns. The filename matching is performed with the use of the \fBfnmatch\fP(3) library function. Don't forget to enclose the pattern in quotes in order to protect it from expansion by the shell. .IP "\-newer \fIodniesienie\fP" Time of the last data modification of the current file is more recent than that of the last data modification of the \fIreference\fP file. If \fIreference\fP is a symbolic link and the \fB\-H\fP option or the \fB\-L\fP option is in effect, then the time of the last data modification of the file it points to is always used. .IP "\fB\-newer\fP\fIXY odniesienie\fP" Succeeds if timestamp \fIX\fP of the file being considered is newer than timestamp \fIY\fP of the file \fIreference\fP. The letters \fIX\fP and \fIY\fP can be any of the following letters: .TS ll ll ll ll llw(2i). a Czas dostępu (ang. access) pliku \fIodniesienie\fP B Czas powstania (ang. birth) pliku \fIodniesienie\fP c Czas zmiany (ang. change) statusu i\-węzła \fIodniesienia\fP m Czas modyfikacji pliku \fIodniesienie\fP t \fIodniesienie\fP jest interpr. bezpośrednio jako czas (ang. time) .TE Niektóre kombinacje są nieprawidłowe, np. \fIX\fP nie może być \fBt\fP. Część kombinacji nie jest zaimplementowanych we wszystkich systemach, do takich należy np. \fBB\fP. Jeśli poda się nieprawidłową lub nieobsługiwaną kombinację \fIXY\fP, otrzymuje się błąd krytyczny. Określenia czasowe są interpretowane jak argument do opcji \fB\-d\fP GNU \fBdate\fP. Jeżeli czas powstania pliku odniesienia nie może być ustalony, to przy próbie użycia go wynikiem jest komunikat o błędzie krytycznym. Jeśli poda się test, odnoszący się do czasu powstania sprawdzanych plików, to test ten nie powiedzie się dla wszystkich plików, których czas ten jest nieznany. .IP \fB\-nogroup\fP Do numerycznego GID pliku nie pasuje żadna grupa. .IP \fB\-nouser\fP Do numerycznego UID pliku nie pasuje żaden użytkownik. .IP "\fB\-path\fP \fIwzorzec\fP" Nazwa pliku odpowiada wzorcowi powłoki \fIwzorzec\fP. Metaznaki nie traktują specjalnie "/" lub "."; tak więc na przykład, .in +4m .nf find . \-path "./sr*sc" .fi .in will print an entry for a directory called \fI./src/misc\fP (if one exists). To ignore a whole directory tree, use \fB\-prune\fP rather than checking every file in the tree. Note that the pattern match test applies to the whole file name, starting from one of the start points named on the command line. It would only make sense to use an absolute path name here if the relevant start point is also an absolute path. This means that this command will never match anything: .br .in +4m .nf find bar \-path /foo/bar/myfile \-print .fi .in Find compares the \fB\-path\fP argument with the concatenation of a directory name and the base name of the file it's examining. Since the concatenation will never end with a slash, \fB\-path\fP arguments ending in a slash will match nothing (except perhaps a start point specified on the command line). The predicate \fB\-path\fP is also supported by HP\-UX \fBfind\fP and is part of the POSIX 2008 standard. .IP "\fB\-perm\fP \fIprawa\fP" File's permission bits are exactly \fImode\fP (octal or symbolic). Since an exact match is required, if you want to use this form for symbolic modes, you may have to specify a rather complex mode string. For example `\-perm g=w' will only match files which have mode 0020 (that is, ones for which group write permission is the only permission set). It is more likely that you will want to use the `/' or `\-' forms, for example `\-perm \-g=w', which matches any file with group write permission. See the \fBEXAMPLES\fP section for some illustrative examples. .IP "\fB\-perm \-\fP\fIprawa\fP" Wszystkie bity \fIpraw\fP pliku są ustawione dla pliku. Akceptowane są tryby w postaci symbolicznej i jest to zwykle wygodniejsza forma do użycia. W przypadku korzystania z postaci symbolicznej trzeba podać "u", "g" lub "o". Lepsze przykłady podano w rozdziale \fBPRZYKŁADY\fP. .IP "\fB\-perm /\fP\fIprawa\fP" Ustawiony jest dowolny z bitów \fIpraw\fP pliku. Akceptowane są tryby w postaci symbolicznej. W przypadku korzystania z postaci symbolicznej trzeba podać "u", "g" lub "o". Lepsze przykłady podano w rozdziale \fBPRZYKŁADY\fP. Jeśli nie ustawiono bitów praw w \fItrybie\fP, to test dopasuje każdy plik (zgodnie z zamysłem, aby pozostać w zgodzie z zachowaniem \fB\-perm\ \-000\fP). .IP "\fB\-perm +\fP\fIprawa\fP" Nie jest już obsługiwane (a było przestarzałe od 2005 roku). Proszę użyć w zamian \fB\-perm /\fP\fItryb\fP. .IP \fB\-readable\fP Dopasowuje pliki odczytywalne przez bieżącego użytkownika. Bierze się tu pod uwagę listy kontroli dostępu (ACL) i inne sprawy związane z uprawnieniami, które \fB\-perm\fP ignoruje. Ten test używa wywołania systemowego \fBaccess\fP(2) i może być zmylony przez serwery NFS używające mapowania UID (lub root\-squashing), gdyż wiele systemów implementuje \fBaccess\fP(2) w jądrze klienta i nie może użyć informacji mapowania UID po stronie serwera. .IP "\fB\-regex\fP \fIwzorzec\fP" Nazwa pliku odpowiada wyrażeniu regularnemu \fIwzorzec\fP. Dopasowanie stosuje się do całej ścieżki, nie dla przeszukiwanej. Na przykład, aby dopasować plik o nazwie \fI./fubar3\fP, można użyć wyrażenia regularnego ".*bar" lub ".*b.*3", lecz nie "f.*r3". Wyrażenia regularne rozumiane przez \fBfind\fP są domyślnie wyrażeniami regularnymi Emacsa (z tym wyjątkiem, że "." dopasowuje nowy wiersz), lecz można to zmienić opcją \fB\-regextype\fP. .IP "\fB\-samefile\fP \fInazwa\fP" Plik odnosi się do tego samego i\-węzła co \fInazwa\fP. Gdy działa opcja \fB\-L\fP, obejmuje to dowiązania symboliczne. .IP "\fB\-size\fP \fIn\fP[\fBc\fP|\fBw\fP|\fBb\fP|\fBk\fP|\fBM\fP|\fBG\fP]" Plik używa mniej niż, więcej niż lub dokładnie \fIn\fP jednostek miejsca, zaokrąglając w górę. Można dodać następujące przyrostki: .RS .IP b bloki 512\-bajtowe (wartość domyślna, gdy nie użyto przyrostka) .IP c bajty .IP w słowa dwubajtowe .IP k kibibajty (KiB, jednostka 1024 bajtów) .IP M mebibajty (MiB, jednostka 1024 * 1024 = 1\|048\|576 bajtów) .IP G gibibajty (GiB, jednostka 1024 * 1024 * 1024 = 1\|073\|741\|824 bajtów) .RE .IP The size is simply the st_size member of the struct stat populated by the lstat (or stat) system call, rounded up as shown above. In other words, it's consistent with the result you get for \fBls\ \-l\fP. Bear in mind that the `%k' and `%b' format specifiers of \fB\-printf\fP handle sparse files differently. The `b' suffix always denotes 512\-byte blocks and never 1024\-byte blocks, which is different to the behaviour of \fB\-ls\fP. .IP The + and \- prefixes signify greater than and less than, as usual; i.e., an exact size of \fIn\fP units does not match. Bear in mind that the size is rounded up to the next unit. Therefore \fB\-size\ \-1M\fP is not equivalent to \fB\-size\ \-1\|048\|576c\fP. The former only matches empty files, the latter matches files from 0 to 1,048,575 bytes. .IP \fB\-true\fP Zawsze prawda. .IP "\fB\-type\fP \fIc\fP" Plik jest typu \fIc\fP: .RS .IP b blokowy (buforowany) plik specjalny .IP c znakowy (niebuforowany) plik specjalny (ang. character) .IP d katalog (ang. directory) .IP p łącze nazwane (FIFO, ang. pipe) .IP f zwykły plik .IP l dowiązanie symboliczne (link); nigdy nie jest to prawda, gdy działa opcja \fB\-L\fP lub \fB\-foolow\fP, chyba że dowiązanie jest zerwane. Aby wyszukiwać dowiązania symboliczne przy korzystaniu z opcji \fB\-L\fP, należy użyć \fB\-xtype\fP. .IP s gniazdo .IP D door (Solaris) .RE .IP To search for more than one type at once, you can supply the combined list of type letters separated by a comma `,' (GNU extension). .IP "\fB\-uid\fP \fIn\fP" Numeryczny UID pliku wynosi mniej niż, więcej niż lub dokładnie \fIn\fP. .IP "\fB\-used\fP \fIn\fP" Do pliku ostatnio dostano się wcześniej niż, dawniej niż lub dokładnie \fIn\fP dni po zmianie jego statusu. .IP "\fB\-user\fP \fIunazwa\fP" Właścicielem pliku jest użytkownik \fIunazwa\fP (numeryczny UID jest tu dozwolony). .IP "\fB\-wholename\fP \fIwzorzec\fP" Patrz \fB\-path\fP. Ta alternatywa jest mniej przenośna niż wspomniana opcja. .IP \fB\-writable\fP Dopasowuje pliki zapisywalne dla bieżącego użytkownika. Bierze pod uwagę listy kontroli dostępu (ACL) i inne zasady praw dostępu, które są ignorowane przez test \fB\-perm\fP. Ten test używa wywołania systemowego \fBaccess\fP(2) i może być zmylony przez serwery NFS używające mapowania UID (lub root\-squashing), gdyż wiele systemów implementuje \fBaccess\fP(2) w jądrze klienta i nie może użyć informacji mapowania UID po stronie serwera. .IP "\fB\-xtype\fP \fIc\fP" Jest to to samo co \fB\-type\fP, chyba że plik jest dowiązaniem symbolicznym. Dla dowiązań symbolicznych: jeśli podano \fB\-H\fP lub \fB\-P\fP, jest prawdziwe gdy plik jest dowiązaniem do pliku typu \fIc\fP; jeśli podano \fB\-L\fP, jest prawdziwe, jeśli \fIc\fP to "l". Innymi słowy, dla dowiązań symbolicznych \fB\-xtype\fP sprawdza typ pliku, którego nie sprawdza \fB\-type\fP. .IP "\-context \fIwzorzec\fP" (tylko SELinux) Kontekst bezpieczeństwa pliku dopasowanego przez \fIwzorzec\fP typu glob. .SS AKCJE .IP \fB\-delete\fP Usuwa pliki lub katalogi; prawdziwe gdy usunięcie powiedzie się. Jeśli nie, to wypisywany jest błąd, a kod zakończenia \fBfind\fP będzie niezerowy (gdy program ostatecznie się zakończy). \fBWarning\fP: Don't forget that \fBfind\fP evaluates the command line as an expression, so putting \fB\-delete\fP first will make \fBfind\fP try to delete everything below the starting points you specified. The use of the \fB\-delete\fP action on the command line automatically turns on the \fB\-depth\fP option. As in turn \fB\-depth\fP makes \fB\-prune\fP ineffective, the \fB\-delete\fP action cannot usefully be combined with \fB\-prune\fP. Often, the user might want to test a find command line with \fB\-print\fP prior to adding \fB\-delete\fP for the actual removal run. To avoid surprising results, it is usually best to remember to use \fB\-depth\fP explicitly during those earlier test runs. The \fB\-delete\fP action will fail to remove a directory unless it is empty. Together with the \fB\-ignore_readdir_race\fP option, \fBfind\fP will ignore errors of the \fB\-delete\fP action in the case the file has disappeared since the parent directory was read: it will not output an error diagnostic, not change the exit code to nonzero, and the return code of the \fB\-delete\fP action will be true. .IP "\fB\-exec\fP \fIpolecenie\fP \fB;\fP" Wykonuje \fIpolecenie\fP; prawdziwe jeśli zwrócony został status 0. Wszelkie następne argumenty \fBfind\fP są brane za argumenty polecenia, aż nie zostanie napotkany argument, składający się z ";". Łańcuch "{}' jest podmieniany na obecnie przetwarzaną nazwę pliku, wszędzie, gdzie wystąpi ona w wierszu polecenia, nie tylko w argumentach, gdzie jest ona sama, jak w niektórych wersjach \fBfind\fP. Obydwie te konstrukcje być może będą wymagały zacytowania (znakiem "\e") aby uchronić je przed rozwinięciem przez powłokę. Więcej informacji na temat użycia opcji \fB\-exec\fP, zawiera rozdział \fBPRZYKŁADY\fP. Polecenie jest wykonywane w katalogu startowym. W związku z akcją \fB\-exec\fP występują pewne nieuniknione zagrożenia związane z bezpieczeństwem, należy zamiast niej używać \fB\-execdir\fP. .IP "\fB\-exec\fP \fIpolecenie\fP \fB{} +\fP" This variant of the \fB\-exec\fP action runs the specified command on the selected files, but the command line is built by appending each selected file name at the end; the total number of invocations of the command will be much less than the number of matched files. The command line is built in much the same way that \fBxargs\fP builds its command lines. Only one instance of `{}' is allowed within the command, and it must appear at the end, immediately before the `+'; it needs to be escaped (with a `\e') or quoted to protect it from interpretation by the shell. The command is executed in the starting directory. If any invocation with the `+' form returns a non\-zero value as exit status, then \fBfind\fP returns a non\-zero exit status. If \fBfind\fP encounters an error, this can sometimes cause an immediate exit, so some pending commands may not be run at all. For this reason \fB\-exec\ \fP\fImy\-command\fP\fB\ ...\ {}\ +\ \-quit\fP may not result in \fImy\-command\fP actually being run. This variant of \fB\-exec\fP always returns true. .IP "\fB\-execdir\fP \fIpolecenie\fP \fB;\fP" .IP "\fB\-execdir\fP \fIpolecenie\fP \fB{} +\fP" Like \fB\-exec\fP, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which you started \fBfind\fP. As with \-exec, the {} should be quoted if find is being invoked from a shell. This a much more secure method for invoking commands, as it avoids race conditions during resolution of the paths to the matched files. As with the \fB\-exec\fP action, the `+' form of \fB\-execdir\fP will build a command line to process more than one matched file, but any given invocation of \fIcommand\fP will only list files that exist in the same subdirectory. If you use this option, you must ensure that your \fBPATH\fP environment variable does not reference `.'; otherwise, an attacker can run any commands they like by leaving an appropriately\-named file in a directory in which you will run \fB\-execdir\fP. The same applies to having entries in \fBPATH\fP which are empty or which are not absolute directory names. If any invocation with the `+' form returns a non\-zero value as exit status, then \fBfind\fP returns a non\-zero exit status. If \fBfind\fP encounters an error, this can sometimes cause an immediate exit, so some pending commands may not be run at all. The result of the action depends on whether the \fB+\fP or the \fB;\fP variant is being used; \fB\-execdir\ \fP\fIcommand\fP\fB\ {}\ +\fP always returns true, while \fB\-execdir\ \fP\fIcommand\fP\fB\ {}\ ;\fP returns true only if \fIcommand\fP returns 0. .IP "\fB\-fls\fP \fIplik\fP" Prawda; podobne do \fB\-ls\fP, lecz zapisuje do \fIpliku\fP jak \fB\-fprint\fP. Plik wyjściowy jest tworzony zawsze, nawet jeśli wskazanie nigdy nie pasuje. W rozdziale \fBNIETYPOWE NAZWY PLIKÓW\fP znajdują się informacje nt. obsługi nietypowych nazw plików. .IP "\fB\-fprint\fP \fIplik\fP" Prawdziwe; wypisuje pełną nazwę pliku do \fIpliku\fP. Jeśli \fIplik\fP nie istnieje w czasie działania \fBfind\fP, zostanie utworzony; jeśli istnieje, zostanie obcięty. Nazwy plików \fI/dev/stdout\fP i \fI/dev/stderr\fP są traktowane osobno; odnoszą się one odpowiednio do standardowego wyjścia i standardowego wyjścia błędów. Plik wyjściowy jest tworzony zawsze, nawet jeśli wskazanie nigdy nie pasuje. W rozdziale \fBNIETYPOWE NAZWY PLIKÓW\fP znajdują się informacje nt. obsługi nietypowych nazw plików. .IP "\fB\-fprint0\fP \fIplik\fP" Prawda; podobne do \fB\-print0\fP, lecz zapisuje do \fIpliku\fP jak \fB\-fprint\fP. Plik wyjściowy jest tworzony zawsze, nawet jeśli wskazanie nigdy nie pasuje. W rozdziale \fBNIETYPOWE NAZWY PLIKÓW\fP znajdują się informacje nt. obsługi nietypowych nazw plików. .IP "\fB\-fprintf\fP \fIplik\fP \fIformat\fP" Prawda; podobne do \fB\-printf\fP, lecz zapisuje do \fIpliku\fP jak \fB\-fprint\fP. Plik wyjściowy jest tworzony zawsze, nawet jeśli wskazanie nigdy nie pasuje. W rozdziale \fBNIETYPOWE NAZWY PLIKÓW\fP znajdują się informacje nt. obsługi nietypowych nazw plików. .IP \fB\-ls\fP Prawdziwe; wypisuje plik bieżący w formacie \fBls \-dils\fP na standardowe wyjście. Liczniki bloków są 1K blokami, chyba że ustawiono zmienną środowiskową \fBPOSIXLY_CORRECT\fP, gdy używane będą 512\-bajtowe bloki. W rozdziale \fBNIETYPOWE NAZWY PLIKÓW\fP znajdują się informacje nt. obsługi nietypowych nazw plików. .IP "\fB\-ok\fP \fIpolecenie\fP \fB;\fP" Jak \fB\-exec\fP, lecz najpierw pyta użytkownika. Jeśli się on zgodzi \- uruchamia polecenie. W przeciwnym wypadku jedynie zwraca fałsz. Gdy polecenie jest uruchomione, standardowe wejście jest przekierowane z \fI/dev/null\fP. Akcji nie można podać równocześnie z opcją \fB\-files0\-from\fP. .IP Odpowiedź na pytanie jest dopasowywane do pary wyrażeń regularnych, aby określić, czy jest pozytywna czy negatywna. Wyrażenie to jest pozyskiwane z systemu, jeśli ustawiona jest zmienna środowiskowa \fBPOSIXLY_CORRECT\fP, a w przeciwnym wypadku \- z katalogu tłumaczeń komunikatów \fBfind\fP. Jeśli system nie posiada odpowiednich definicji, użyta będzie własna definicja \fBfind\fPa. W każdym przypadku, interpretacja wyrażenia regularnego będzie zależała od zmiennej środowiskowej \fBLC_CTYPE\fP (klasy znakowe) i \fBLC_COLLATE\fP (przedziały znaków i klasy równoważności). .IP "\fB\-okdir\fP \fIpolecenie\fP \fB;\fP" Like \fB\-execdir\fP but ask the user first in the same way as for \fB\-ok\fP. If the user does not agree, just return false. If the command is run, its standard input is redirected from \fI/dev/null\fP. This action may not be specified together with the \fB\-files0\-from\fP option. .IP \fB\-print\fP Prawdziwe; wypisuje pełną nazwę pliku na standardowe wyjście razem ze znakiem nowego wiersza. Jeśli wyjście \fBfind\fPa jest przekierowane za pomocą potoku do innego programu i istnieje choć najmniejsza możliwość, że nazwa jednego z przeszukiwanych plików może zawierać znak nowego wiersza, należy się poważnie zastanowić, czy lepszym wyjściem nie będzie skorzystanie z opcji \fB\-print0\fP, zamiast \fB\-print\fP. Rozdział \fBNIETYPOWE NAZWY PLIKÓW\fP zawiera informacje nt. obsługi nietypowych znaków. .IP \fB\-print0\fP Prawdziwe; wypisuje pełną nazwę pliku na standardowe wyjście. Za nazwą daje znak null (zamiast znaku nowego wiersza używanego przez \fB\-print\fP. Umożliwia to poprawne wyświetlenie plików, zawierających w nazwach znaki nowej linii w programach, przetwarzających wyjście \fBfind\fPa. Opcja ta odpowiada opcji \fB\-0\fP programu \fBxargs\fP. .IP "\fB\-printf\fP \fIformat\fP" Prawdziwe; wypisuje \fIformat\fP na standardowe wyjście, interpretując sekwencje specjalne "\e" i dyrektywy "%". Szerokości pól i precyzje mogą być podawane dokładnie jak w funkcji \fBprintf\fP(3) z C. Proszę zauważyć, że wiele z pól jest wypisywanych jako %s, a nie jako %d \- może to oznaczać, że flagi nie będą działać zgodnie z oczekiwaniami. Oznacza to również, że flaga "\-" działa (wymusza wyrównanie do lewej pól). W przeciwieństwie do \fB\-print\fP, \fB\-printf\fP nie dodaje znaku nowego wiersza do końca łańcucha. Sekwencje specjalne i dyrektywy to: .RS .IP \ea Dzwonek. .IP \eb Backspace. .IP \ec Wstrzymuje wypisywanie tego formatu i natychmiast wymiata wyjście. .IP \ef Wysuw wiersza. .IP \en Nowy wiersz. .IP \er Powrót karetki. .IP \et Tabulacja pozioma. .IP \ev Tabulacja pionowa. .IP \e0 ASCII NUL. .IP \e\e Literalny lewy ukośnik ("\e"). .IP \e\fINNN\fP Znak o kodzie ASCII \fINNN\fP (ósemkowo). .PP "\e", za którym następuje dowolny inny znak, jest traktowany jak zwykły znak, więc są wypisywane obydwa. .IP %% Literalny znak procenta. .IP %a Ostatni czas dostępu do pliku w formacie zwracanym przez funkcję \fBctime\fP(3) C. .IP %A\fIk\fP File's last access time in the format specified by \fIk\fP, which is either `@' or a directive for the C \fBstrftime\fP(3) function. The following shows an incomplete list of possible values for \fIk\fP. Please refer to the documentation of \fBstrftime\fP(3) for the full list. Some of the conversion specification characters might not be available on all systems, due to differences in the implementation of the \fBstrftime\fP(3) library function. .RS .IP @ Sekundy od 1 stycznia, 1970, 00:00 GMT, z częścią ułamkową. .PP Pola czasowe: .IP H godzina (00..23) .IP I godzina (01..12) .IP k godzina ( 0..23) .IP l godzina ( 1..12) .IP M minuta (00..59) .IP p przetłumaczone AM lub PM .IP r czas, 12\-godzinny (gg:mm:ss) .IP S Sekundy (00.00 \&..\& 61.00). Jest tu część ułamkowa. .IP T czas, 24\-godzinny (gg:mm:ss.xxxxxxxxxx) .IP + Data i czas, oddzielona "+" np "2004\-04\-28+22:22:05.0". Jest to rozszerzenie GNU. Czas jest podany w bieżącej strefie czasowej (na którą wpływ może mieć ustawiona zmienna środowiskowa \fBTZ\fP). Pole sekundowe zawiera część ułamkową. .IP X lokalna reprezentacja czasu (G:M:S). Drugie pole zawiera część ułamkową. .IP Z strefa czasowa (np. EDT), lub nic jeśli nie da się jej określić .PP Pola daty: .IP a lokalny skrót nazwy tygodnia (nie..sob) .IP A lokalna pełna nazwa tygodnia, zmiennej długości (niedziela..sobota) .IP b lokalna skrócona nazwa miesiąca (sty..gru) .IP B lokalna pełna nazwa miesiąca, zmiennej długości (styczeń..grudzień) .IP c data i czas zgodnie z ustawieniami regionalnymi (sob, 4 lis 1989, 12:02:33). Format ten jest taki sam w przypadku \fBctime\fP(3) i w celu zachowania z nim kompatybilności, nie ma tu części ułamkowej w polu sekund. .IP d dzień miesiąca (01..31) .IP D data (mm/dd/rr) .IP F data (rrrr\-mm\-dd) .IP h to samo co b .IP j dzień roku (001..366) .IP m miesiąc (01..12) .IP U numer tygodnia w roku, z niedzielą liczoną jako pierwszy dzień tygodnia (00..53) .IP w dzień tygodnia (0..6) .IP W numer tygodnia w roku, licząc z poniedziałkiem, jako pierwszym dniem tygodnia (00..53) .IP x lokalna reprezentacja daty (mm.dd.rrrr) .IP y ostatnie dwie cyfry roku (00..99) .IP Y rok (1970...\&) .RE .IP %b Wielkość przestrzeni dysku, użyta dla tego pliku w blokach 512\-bajtowych. Ponieważ przestrzeń dyskowa jest alokowana w wielokrotnościach rozmiaru bloku systemu plików, jest to zwykle więcej niż %s/512, lecz może być to również mniej, gdy plik jest tzw. plikiem rzadkim. .IP %B\fIk\fP File's birth time, i.e., its creation time, in the format specified by \fIk\fP, which is the same as for %A. This directive produces an empty string if the underlying operating system or filesystem does not support birth times. .IP %c Ostatni czas zmiany statusu pliku, w formacie zwróconym przez funkcję \fBctime\fP(3) z C. .IP %C\fIk\fP Ostatni czas zmiany statusu pliku w formacie określonym przez \fIk\fP, w taki sam sposób, jak dla %A. .IP %d Głębokość pliku w drzewie katalogowym; 0 oznacza plik będący punktem startowym. .IP %D Numer urządzenia, na którym istnieje plik (pole st_dev ze stat struct), dziesiętnie. .IP %f Print the basename; the file's name with any leading directories removed (only the last element). For \fB/\fP, the result is `/'. See the \fBEXAMPLES\fP section for an example. .IP %F Rodzaj systemu plików, na którym znajduje się plik; wartość ta może być używana do \-fstype. .IP %g Nazwa grupy pliku lub numeryczny GID, jeśli grupa nie ma nazwy. .IP %G Numeryczny GID pliku. .IP %h Dirname; the Leading directories of the file's name (all but the last element). If the file name contains no slashes (since it is in the current directory) the %h specifier expands to `.'. For files which are themselves directories and contain a slash (including \fB/\fP), %h expands to the empty string. See the \fBEXAMPLES\fP section for an example. .IP %H Punkt początkowy, pod którym plik został znaleziony. .IP %i Numer i\-węzła pliku (dziesiętnie). .IP %k Wielkość przestrzeni dysku, użyta dla tego pliku w blokach o wielkości 1K bajtów. Ponieważ przestrzeń dyskowa jest alokowana w wielokrotnościach rozmiaru bloku systemu plików, jest to zwykle więcej niż %s/1024, lecz może być to również mniej, gdy plik jest tzw. plikiem rzadkim. .IP %l Obiekt dowiązania symbolicznego (pusty łańcuch, jeśli plik nie jest dowiązaniem symbolicznym). .IP %m Bity praw pliku (ósemkowo). Ta opcja korzysta z "tradycyjnych" liczb, używanych przez większość implementacji Uniksowych, lecz jeśli dana, używana obecnie implementacja, wykorzystuje dziwną kolejność ósemkowych bitów uprawnień, widoczna będzie różnica pomiędzy prawami pliku i wynikiem %m. Zwykle chce się tu użyć początkowego zera i aby to zrobić należy skorzystać z flagi \fB#\fP (np. "%#m") .IP %M Uprawnienia pliku (w postaci symbolicznej, jak w \fBls\fP). Ta dyrektywa jest obsługiwana przez findutils 4.2.5 i późniejsze. .IP %n Liczba twardych dowiązań do pliku. .IP %p Nazwa pliku. .IP %P File's name with the name of the starting\-point under which it was found removed. .IP %s Rozmiar pliku w bajtach. .IP %S File's sparseness. This is calculated as (BLOCKSIZE*st_blocks / st_size). The exact value you will get for an ordinary file of a certain length is system\-dependent. However, normally sparse files will have values less than 1.0, and files which use indirect blocks may have a value which is greater than 1.0. In general the number of blocks used by a file is file system dependent. The value used for BLOCKSIZE is system\-dependent, but is usually 512 bytes. If the file size is zero, the value printed is undefined. On systems which lack support for st_blocks, a file's sparseness is assumed to be 1.0. .IP %t Ostatni czas modyfikacji pliku w formacie zwróconym przez funkcję \fBctime\fP(3) z C. .IP %T\fIk\fP Ostatni czas modyfikacji pliku, w formacie określonym przez \fIk\fP, podobnie jak dla %A. .IP %u Nazwa użytkownika pliku, lub numeryczny UID, jeśli użytkownik nie ma nazwy. .IP %U Numeryczny UID pliku. .IP %y Typ pliku (podobnie jak w \fBls \-l\fP), "U" to typ nieznany (ang. unknown, nie powinien wystąpić). .IP %Y File's type (like %y), plus follow symbolic links: `L'=loop, `N'=nonexistent, `?' for any other error when determining the type of the target of a symbolic link. .IP %Z (SELinux only) file's security context. .IP "%{ %[ %(" Reserved for future use. .PP Znak "%" po którym występuje dowolny inny znak jest ignorowany, lecz ten drugi znak jest wypisywany (nie należy na tym polegać, gdyż mogą zostać wprowadzone nowe znaki formatu). Symbol "%" na końcu argumentu formatu skutkuje niezdefiniowanym zachowaniem, ponieważ brak jest następnego znaku. W niektórych ustawieniach regionalnych opcja ta może ukryć klucz do domu, w innych usunąć ostatnią stronicę czytanej powieści. Ostrzegaliśmy! Dyrektywy %m i %d obsługują flagi \fB#\fP, \fB0\fP i \fB+\fP, lecz inne dyrektywy nie, nawet jeśli wyświetlają liczby. Do dyrektyw liczbowych, które nie obsługują tych flag, należą \fBG\fP, \fBU\fP, \fBb\fP, \fBD\fP, \fBk\fP i \fBn\fP. Flaga formatu "\-" jest obsługiwana i zmienia wyrównanie pól z prawego (domyślnego) na lewy. .PP Rozdział \fBNIETYPOWE NAZWY PLIKÓW\fP zawiera informacje nt. obsługi nietypowych nazw plików. .RE .IP \fB\-prune\fP True; if the file is a directory, do not descend into it. If \fB\-depth\fP is given, then \fB\-prune\fP has no effect. Because \fB\-delete\fP implies \fB\-depth\fP, you cannot usefully use \fB\-prune\fP and \fB\-delete\fP together. For example, to skip the directory \fIsrc/emacs\fP and all files and directories under it, and print the names of the other files found, do something like this: .in +4m .nf find . \-path ./src/emacs \-prune \-o \-print .fi .in .IP \fB\-quit\fP Exit immediately (with return value zero if no errors have occurred). This is different to \fB\-prune\fP because \fB\-prune\fP only applies to the contents of pruned directories, while \fB\-quit\fP simply makes \fBfind\fP stop immediately. No child processes will be left running. Any command lines which have been built by \fB\-exec\ ...\ +\fP or \fB\-execdir\ ...\ +\fP are invoked before the program is exited. After \fB\-quit\fP is executed, no more files specified on the command line will be processed. For example, `\fBfind\ \fP\fI/tmp/foo\fP\fB\ \fP\fI/tmp/bar\fP\fB\ \-print\ \-quit\fP` will print only `/tmp/foo`. .br One common use of \fB\-quit\fP is to stop searching the file system once we have found what we want. For example, if we want to find just a single file we can do this: .in +4m .nf find / \-name needle \-print \-quit .fi .in .SS OPERATORY Wymienione według malejącego priorytetu: .IP "\fB(\fP \fIwyraż\fP \fB)\fP" Wymusza pierwszeństwo. Ponieważ nawiasy są znakami specjalnymi dla powłoki, trzeba je zwykle cytować. Wiele przykładów z niniejszej strony podręcznika używa do tego celu odwrotnych ukośników: "\e(...\e)" zamiast "(...)". .IP "\fB!\fP \fIwyraż\fP" Prawda, jeśli \fIwyraż\fP jest fałszywe. Znak ten zwykle wymaga również ochrony przed interpretacją przez powłokę. .IP "\fB\-not\fP \fIwyraż\fP" Jak \fB!\fP\& \fIwyraż\fP, lecz nie jest zgodne z POSIX. .IP "\fIwyraż1 wyraż2\fP" Dwa wyrażenia z rzędu są traktowane, jakby były połączone jawnym \fB\-a\fP; \fIwyraż2\fP nie jest analizowany jeśli \fIwyraż1\fP jest fałszywe. .IP "\fIwyraż1\fP \fB\-a\fP \fIwyraż2\fP" To samo, co \fIwyraż1 wyraż2\fP. .IP "\fIwyraż1\fP \fB\-and\fP \fIwyraż2\fP" To samo, co \fIwyraż1 wyraż2\fP, lecz nie jest zgodne z POSIX. .IP "\fIwyraż1\fP \fB\-o\fP \fIwyraż2\fP" Lub ("or"); \fIwyraż2\fP nie jest analizowane jeśli \fIwyraż1\fP jest prawdziwe. .IP "\fIwyraż1\fP \fB\-or\fP \fIwyraż2\fP" To samo, co \fIwyraż1\fP \fB\-o\fP \fIwyraż2\fP, lecz nie jest zgodne z POSIX. .IP "\fIwyraż1\fP \fB,\fP \fIwyraż2\fP" Lista; zarówno \fIwyraż1\fP jak i \fIwyraż2\fP są zawsze analizowane. Wartość \fIwyraż1\fP jest pomijana; wartością listy jest wartość \fIwyraż2\fP. Operator w formie przecinka może być przydatny do wyszukiwania wielu różnych typów rzeczy, lecz przechodząc przez hierarchię systemu plików tylko raz. Do wypisania różnych dopasowań do wielu różnych plików wyjściowych, można użyć akcji \fB\-fprintf\fP. .P Please note that \fB\-a\fP when specified implicitly (for example by two tests appearing without an explicit operator between them) or explicitly has higher precedence than \fB\-o\fP. This means that \fBfind . \-name afile \-o \-name bfile \-print\fP will never print \fIafile\fP. . .SH "NIETYPOWE NAZWY PLIKÓW" Wiele akcji \fBfind\fP skutkuje wypisywaniem danych, będących pod kontrolą innych użytkowników. Dotyczy to nazw plików, rozmiarów, czasów modyfikacji itp. Nazwy plików są potencjalnym problemem, ponieważ mogą zawierać dowolne znaki oprócz "\e0" i "/". Nietypowe znaki w nazwach plików mogą robić nieoczekiwane i często nieprzewidywalne rzeczy z terminalem użytkownika (np. zmieniać ustawienia klawiszy funkcyjnych niektórych terminali). Nietypowe znaki są obsługiwane w różny sposób, w zależności od akcji, zgodnie z poniższym opisem. .IP "\fB\-print0\fP, \fB\-fprint0\fP" Zawsze wypisuje dokładne nazwy plików, niezmienione, nawet jeśli wynik trafia na terminal .IP "\fB\-ls\fP, \fB\-fls\fP" Nietypowe znaki są zawsze cytowane. Białe znaki, odwrotny ukośnik i znak podwójnego cudzysłowu jest wypisywany za pomocą cytowania w stylu C (np \ef lub \e" ). Inne nietypowe znaki są wypisywane za pomocą cytowania ósemkowego. Inne znaki drukowalne (dla \fB\-ls\fP i \fB\-fls\fP są to znaki pomiędzy ósemkowym 041 i 0176) są wypisywane bez zmian. .IP "\fB\-printf\fP, \fB\-fprintf\fP" Jeśli wynik nie trafia na terminal, nic nie jest zmieniane. W przeciwnym razie, wynik zależy od używanej dyrektywy. Dyrektywy %D, %F, %g, %G, %H, %Y i %y są rozwijane do wartości, które nie są pod kontrolą właścicieli plików, są więc wypisywane bez zmian. Dyrektywy %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u i %U mają wartości będące pod kontrolą właścicieli plików, lecz nie mogą być one użyte do wysłania dowolnych danych na terminal, dlatego są wypisywane bez zmian. Dyrektywy %f, %h, %l, %p i %P są cytowane. Cytowanie jest wykonywane w ten sam sposób, jak w GNU \fBls\fP. Nie jest to ten sam mechanizm, co używany przez \fB\-ls\fP i \fB\-fls\fP. Jeśli można zdecydować o formacie wyniku \fBfind\fP lepiej jest zwykle skorzystać z "\e0" jako ogranicznika, zamiast używać znaku nowego wiersza, ponieważ nazwy plików mogą zawierać białe znaki i znaki nowego wiersza. Ustawienie zmiennej środowiskowej \fBLC_CTYPE\fP jest używane do określenia tego, które znaki mają być cytowane. .IP "\fB\-print\fP, \fB\-fprint\fP" Cytowanie jest obsługiwane w ten sam sposób co w \fB\-printf\fP i \fB\-fprintf\fP. Jeśli używa się \fBfind\fP w skrypcie lub w sytuacji, gdzie dopasowywane pliki mogą mieć dowolne nazwy, powinno się rozważyć skorzystanie z \fB\-print0\fP zamiast z \fB\-print\fP. .P Akcje \fB\-ok\fP i \fB\-okdir\fP wypisują bieżące nazwy plików bez zmian. Może się to zmienić w kolejnych wydaniach. . .SH "ZGODNOŚĆ ZE STANDARDAMI" W celu najściślejszej zgodności ze standardem POSIX, należy ustawić zmienną środowiskową \fBPOSIXLY_CORRECT\fP. W standardzie POSIX (IEEE Std 1003.1\-2008, 2016 Edition) określono następujące opcje: .IP \fB\-H\fP Opcja jest obsługiwana. .IP \fB\-L\fP Opcja jest obsługiwana. .IP \fB\-name\fP Opcja jest obsługiwana, lecz zgodność z POSIX zależy od zgodności z POSIX systemowej funkcji bibliotecznej \fBfnmatch\fP(3). Od wersji findutils\-4.2.2 metaznaki powłoki (np. "*", "?", "[]") dopasują początkowe ".", ponieważ wymaga tego interpretacja 126 IEEE PASC. Jest to zmiana w stosunku do poprzednich wersji findutils. .IP \fB\-type\fP Supported. POSIX specifies `b', `c', `d', `l', `p', `f' and `s'. GNU find also supports `D', representing a Door, where the OS provides these. Furthermore, GNU find allows multiple types to be specified at once in a comma\-separated list. .IP \fB\-ok\fP Obsługiwane. Interpretacja odpowiedzi jest zgodna z wzorcami "yes" i "no" wybranymi przez ustawienie zmiennej środowiskowej \fBLC_MESSAGES\fP. Gdy ustawiona jest zmienna środowiskowa \fBPOSIXLY_CORRECT\fP, wzorce te są wzięte z systemowych definicji odpowiedzi pozytywnej (yes) lub negatywnej (no). Proszę zapoznać się z systemową dokumentacją \fBnl_langinfo\fP(3), w szczególności YESEXPR i NOEXPR. Gdy \fBPOSIXLY_CORRECT\fP nie jest ustawiona, wzorce są brane z własnego katalogu komunikatów \fBfind\fP. .IP \fB\-newer\fP Obsługiwane. Jeśli podany plik jest dowiązaniem symbolicznym, jest zawsze rozwiązywany. Jest to zmiana w stosunku do wcześniejszego zachowania, gdy odpowiedni czas był brany z samego dowiązania; patrz poniższy rozdział \fBHISTORIA\fP. .IP \fB\-perm\fP Obsługiwane. Jeśli zmienna środowiskowa \fBPOSIXLY_CORRECT\fP nie jest ustawiona, część argumentów trybu (np. +a+x), która nie jest prawidłowa w POSIX, jest obsługiwana w celu zachowania kompatybilności wstecznej. .IP "Other primaries" The primaries \fB\-atime\fP, \fB\-ctime\fP, \fB\-depth\fP, \fB\-exec\fP, \fB\-group\fP, \fB\-links\fP, \fB\-mtime\fP, \fB\-nogroup\fP, \fB\-nouser\fP, \fB\-ok\fP, \fB\-path\fP, \fB\-print\fP, \fB\-prune\fP, \fB\-size\fP, \fB\-user\fP and \fB\-xdev\fP are all supported. .P Standard POSIX określa nawiasy "(", ")", negację "!" i operatory logiczne ORAZ/LUB \fB\-a\fP i \fB\-o\fP. .P Wszystkie inne opcje, wskazania, wyrażenia itd. są rozszerzeniami wykraczającymi poza standard POSIX. Wiele z nich nie jest jednak unikalnych dla GNU find. .P Standard POSIX wymaga wykrywania przez \fBfind\fP pętli: .IP Narzędzie \fBfind\fP powinno wykrywać pętle nieskończone, tj. gdy wchodzi do wcześniej odwiedzonego katalogu, będącego przodkiem pliku, który wystąpił jako ostatni. Gdy pętla nieskończona jest wykrywana, find powinien wypisać informację diagnostyczną na standardowe wyjście błędów i powinien albo odzyskać swą pozycję w hierarchii albo wyjść. .P GNU \fBfind\fP jest zgodny z tymi wymaganiami. Liczba dowiązań katalogów zawierających wpisy będące dowiązaniami zwykłymi (twardymi) do katalogu nadrzędnego będzie często niższa, niż powinna być. Oznacza to, że GNU find czasami zoptymalizuje liczbę sprawdzeń podkatalogów będących dowiązaniem do katalogu nadrzędnego. Ponieważ \fBfind\fP nie wchodzi w rzeczywistości do każdego podkatalogu, może unikać wyświetlania komunikatu diagnostycznego. Choć to zachowanie może być niekiedy mylące, jest mało prawdopodobne, aby ktokolwiek na nim polegał. Jeśli optymalizacja "liściowa" (ang. leaf optimisation) zostanie wyłączona za pomocą \fB\-noleaf\fP, wpis katalogu zostanie zawsze sprawdzony, a gdy to będzie konieczne, zostanie wypisany komunikat diagnostyczny. Dowiązanie symboliczne nie może być użyte do tworzenia podobnych cykli systemu plików, lecz jeśli działa opcja \fB\-L\fP lub \fB\-follow\fP, komunikat diagnostyczny zostanie wypisany, gdy \fBfind\fP natrafi na pętlę dowiązań symbolicznych. Podobnie jak w przypadku pętli z dowiązaniami zwykłymi (twardymi), optymalizacja liściowa często będzie oznaczać, że \fBfind\fP wie, iż nie musi wywoływać \fIstat()\fP lub \fIchdir()\fP na dowiązaniu symbolicznym, więc taka diagnostyka często nie jest konieczna. .P Opcja \fB\-d\fP jest obsługiwana w celu kompatybilności z różnymi systemami BSD, lecz powinno się w zamian używać zgodną z POSIX opcję \fB\-depth\fP. .P Zmienna środowiskowa \fBPOSIXLY_CORRECT\fP nie wpływa na zachowanie testów \fB\-regex\fP ani \fB\-iregex\fP, ponieważ opcje te nie są określone w standardzie POSIX. . .SH "ZMIENNE ŚRODOWISKOWE" .IP LANG Dostarcza domyślną wartość do zmiennych dotyczących umiędzynarodowienia, które nie są ustawione lub są puste. .IP \fBLC_ALL\fP Jeśli jest ustawiona na niepusty łańcuch, przesłania wartość wszystkich innych zmiennych dotyczących umiędzynarodowienia. .IP \fBLC_COLLATE\fP Standard POSIX określa, że ta zmienna wpływa na dopasowanie wzorców używanych przez opcję \fB\-name\fP. GNU find używa funkcji bibliotecznej \fBfnmatch\fP(3), w związku z tym obsługa \fBLC_COLLATE\fP zależy od biblioteki systemowej. Zmienna ta wpływa również na interpretację odpowiedzi na \fB\-ok\fP \- podczas gdy zmienna \fBLC_MESSAGES\fP wybiera rzeczywisty wzorzec używany do interpretacji odpowiedzi na \fB\-ok\fP, interpretacja wyrażeń klamrowych we wzorcu będzie zależna od \fBLC_COLLATE\fP. .IP LC_CTYPE Zmienna wpływa na traktowanie klas znaków używanych w wyrażeniach regularnych, jak również w teście \fB\-name\fP, jeśli obsługuje to systemowa funkcja biblioteczna \fBfnmatch\fP(3). Zmienna wpływa również na interpretację klas znakowych w wyrażeniach regularnych używanych do interpretacji odpowiedzi na pytanie wydane przez \fB\-ok\fP. Zmienna środowiskowa \fBLC_CTYPE\fP wpływa również na to, które znaki są uważane za niedrukowalne przy wypisywaniu nazw plików; patrz rozdział \fBNIETYPOWE NAZWY PLIKÓW\fP. .IP \fBLC_MESSAGES\fP Określa język (lokale) komunikatów. Jeśli ustawiona jest zmienna środowiskowa \fBPOSIXLY_CORRECT\fP, to określa również interpretację na odpowiedź na pytanie zadane przez akcję \fB\-ok\fP. .IP \fBNLSPATH\fP Określa lokalizację katalogów z przetłumaczonymi komunikatami. .IP PATH Wpływa na katalogi, które są przeszukiwane przez find w celu wykonania plików wywołanych przez \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP i \fB\-okdir\fP. .IP \fBPOSIXLY_CORRECT\fP Określa rozmiar bloku używany przez \fB\-ls\fP i \fB\-fls\fP. Jeśli ustawiona jest zmienna \fBPOSIXLY_CORRECT\fP, bloki mają po 512 bajtów. W przeciwnym wypadku \- 1024 bajtów. .IP Ustawienie tej zmiennej domyślnie wyłącza również ostrzeżenia (tzn. implikuje \fB\-nowarn\fP), ponieważ niezależnie od wyniku \fB\-ok\fP, POSIX wymaga aby wszystkie komunikaty wypisywane na standardowe wyjście błędów były diagnostyczne i wynikał z nich niezerowy kod zakończenia. .IP Gdy \fBPOSIXLY_CORRECT\fP nie jest ustawiona, \fB\-perm \fP\fI+zzz\fP jest traktowane jak \fB\-perm \fP\fI/zzz\fP jeśli +zzz nie jest prawidłowym trybem symbolicznym. Gdy POSIXLY_CORRECT jest ustawiona, takie konstrukcje są traktowane jako błąd. .IP Gdy \fBPOSIXLY_CORRECT\fP jest ustawiona, odpowiedź na pytanie zadane przez akcję \fB\-ok\fP jest interpretowane zgodnie z katalogiem systemowym wiadomości, a nie zgodnie z własnymi tłumaczeniami komunikatów programu \fBfind\fP. .IP \fBTZ\fP Wpływa na strefę czasową używaną przez część związanych z czasem dyrektyw formatu opcji \fB\-printf\fP i \fB\-fprintf\fP. . .SH PRZYKŁADY .\" A bulleted \[bu] list of examples. .SS "Prostsze podejście \(dqfind|xargs\(dq" .IP \[bu] Znajduje pliki o nazwie \fIcore\fP w lub poniżej katalogu \fI/tmp\fP i usuwa je. .nf \& .in +4m \fB$ find /tmp \-name core \-type f \-print | xargs /bin/rm \-f\fP .in \& .fi Proszę zauważyć, że przykład nie będzie działał poprawnie, jeśli w którejś z nazw są znaki nowego wiersza, pojedyncze lub podwójne cudzysłowy lub spacje. . .SS "Bezpieczniejsze podejście \(dqfind \-print0 | xargs \-0\(dq" .IP \[bu] Znajduje pliki o nazwie \fIcore\fP w lub poniżej katalogu \fI/tmp\fP i usuwa je, przetwarzając nazwy plików w ten sposób, że nazwy zawierające pojedyncze lub podwójne cudzysłowy, spacji lub znaki nowego wiersza są obsługiwane poprawnie. .nf \& .in +4m \fB$ find /tmp \-name core \-type f \-print0 | xargs \-0 /bin/rm \-f\fP .in \& .fi Test \fB\-name\fP jest wykonywany przed testem \fB\-type\fP, aby zapobiec wywoływaniu \fBstat\fP(2) na każdym pliku. .PP Note that there is still a race between the time \fBfind\fP traverses the hierarchy printing the matching filenames, and the time the process executed by \fBxargs\fP works with that file. . .SS "Processing arbitrary starting points" .IP \[bu] Given that another program \fIproggy\fP pre\-filters and creates a huge NUL\-separated list of files, process those as starting points, and find all regular, empty files among them: .nf \& .in +4m \fB$ proggy | find \-files0\-from \- \-maxdepth 0 \-type f \-empty\fP .in \& .fi The use of \fB`\-files0\-from\ \-`\fP means to read the names of the starting points from \fIstandard input\fP, i.e., from the pipe; and \fB\-maxdepth\ 0\fP ensures that only explicitly those entries are examined without recursing into directories (in the case one of the starting points is one). . .SS "Wykonywanie polecenia dla każdego pliku" .IP \[bu] Uruchamia \fIfile\fP na każdym pliku w lub poniżej katalogu bieżącego. .nf \& .in +4m \fB$ find . \-type f \-exec plik \(aq{}\(aq \e;\fP .in \& .fi Proszę zwrócić uwagę, że nawiasy klamrowe są ujęte w pojedyncze cudzysłowy, aby ochronić je przed interpretację przez interpunkcję skryptów powłoki. Średnik jest również chroniony, przez odwrotny ukośnik, choć pojedyncze cudzysłowy byłyby równie dobre. .PP In many cases, one might prefer the \fB`\-exec\ \&...\&\ +`\fP or better the \fB`\-execdir\ \&...\&\ +`\fP syntax for performance and security reasons. . .SS "Przechodzenie przez system plików jednokrotnie \- wykonując 2 różne akcje" .IP \[bu] Przeszukuje system plików jeden raz, wypisując pliki i katalogi z set\-user\-ID do pliku \fI/root/suid.txt\fP, a duże pliki do \fI/root/big.txt\fP. .nf \& .in +4m \fB$ find / \e\fP .in +4m \fB\e( \-perm \-4000 \-fprintf /root/suid.txt \(aq%#m %u %p\en\(aq \e) , \e\fP .br \fB\e( \-size +100M \-fprintf /root/big.txt \(aq%\-10s %p\en\(aq \e)\fP .in -4m .in -4m \& .fi This example uses the line\-continuation character \(aq\e\(aq on the first two lines to instruct the shell to continue reading the command on the next line. . .SS "Wyszukiwanie plików według wieku" .IP \[bu] Wyszukuje pliki w katalogu domowym użytkownika, które zostały zmodyfikowane w ciągu ostatnich 24 godzin. .nf \& .in +4m \fB$ find $HOME \-mtime 0\fP .in \& .fi To polecenie działa w ten sposób, ponieważ czas od ostatniej modyfikacji pliku jest podzielony przez 24 godziny, a reszta jest odrzucana. Oznacza to, że aby pasować do \fB\-mtime 0\fP, plik musiał być zmodyfikowany mniej niż 24 godziny temu. . .SS "Wyszukiwanie plików według uprawnień" .IP \[bu] Wyszukuje pliki wykonywalne, lecz nieodczytywalne. .nf \& .in +4m \fB$ find /sbin /usr/sbin \-executable \e! \-readable \-print\fP .in \& .fi . .IP \[bu] Wyszukuje pliki posiadające prawa odczytu i zapisu dla właściciela i grupy, które dla innych są odczytywalne, lecz nie są zapisywalne. .nf \& .in +4m \fB$ find . \-perm 664\fP .in \& .fi Pliki, które spełniają te kryteria lecz mają ustawione inne bity praw (np. wykonywalności) nie są dopasowane. . .IP \[bu] Wyszukuje pliki posiadające prawa odczytu i zapisu dla właściciela i grupy, które dla innych są odczytywalne, bez względu na obecność jakichś dodatkowych bitów praw (np. bitu wykonywalności). .nf \& .in +4m \fB$ find . \-perm \-664\fP .in \& .fi Dopasowany będzie też np. plik z trybem \fI0777\fP. . .IP \[bu] Wyszukuje pliki, które są przez kogoś zapisywalne (dla ich właściciela, grupy lub innych). .nf \& .in +4m \fB$ find . \-perm /222\fP .in \& .fi . .IP \[bu] Wyszukuje pliki, które są przez zapisywalne dla ich właściciela lub dla ich grupy. .nf \& .in +4m \fB$ find . \-perm /220\fP \fB$ find . \-perm /u+w,g+w\fP \fB$ find . \-perm /u=w,g=w\fP .in \& .fi Wszystkie trzy polecenia wykonują to samo, lecz pierwsze używa reprezentacji ósemkowej praw lików, a pozostałe dwa \- postaci symbolicznej. Pliki nie muszą być zapisywalne zarówno przez właściciela jak i grupę, aby zostać dopasowane; wystarczy spełnić jeden warunek. . .IP \[bu] Wyszukuje pliki, które są zapisywalne dla ich właściciela oraz dla ich grupy. .nf \& .in +4m \fB$ find . \-perm \-220\fP \fB$ find . \-perm \-g+w,u+w\fP .in \& .fi Oba te polecenia robią to samo. . .IP \[bu] Bardziej skomplikowane przeszukiwanie uprawnień. .nf \& .in +4m \fB$ find . \-perm \-444 \-perm /222 \e! \-perm /111\fP \fB$ find . \-perm \-a+r \-perm /a+w \e! \-perm /a+x\fP .in \& .fi Oba polecenia wyszukują pliki odczytywalne dla wszystkich (\fB\-perm \-444\fP lub \fB\-perm \-a+r\fP), mające ustawiony co najmniej jeden bit zapisu (\fB\-perm /222\fP lub \fB\-perm /a+w\fP), lecz nie będące wykonywalne dla kogokolwiek (odpowiednio \fB! \-perm /111\fP lub \fB! \-perm /a+x\fP). . .SS "Wycinanie \- pomijanie plików i podkatalogów" .IP \[bu] Polecenie to kopiuje zawartość \fI/source\-dir\fP do \fI/dest\-dir\fP, lecz pomija pliki lub katalogi o nazwach \fI.snapshot\fP (i wszystko wewnątrz ich). Pomija również pliki lub katalogi o nazwach kończących się na "\(ti", lecz nie ich zawartość. .nf \& .in +4m \fB$ cd /source\-dir\fP \fB$ find . \-name .snapshot \-prune \-o \e( \e! \-name \(aq*~\(aq \-print0 \e) \e\fP .br .in +4m \fB| cpio \-pmd0 /dest\-dir\fP .in -4m .in -4m \& .fi Konstrukcja \fB\-prune\ \-o\ \e(\ \&...\&\ \-print0\ \e)\fP jest dość częsta. Pomysł jest taki, że wyrażenie przed \fB\-prune\fP dopasowuje rzeczy, które mają być wycięte. Jednak sama akcja \fB\-prune\fP zwraca prawdę, więc kolejna \fB\-o\fP upewnia się, że prawa strona jest obliczana tylko dla niewyciętych katalogów (zawartość wycinanych katalogów nie jest nawet sprawdzana, więc ich zawartość jest nieistotna). Wyrażenie po prawej stronie \fB\-o\fP, znajduje się w nawiasach jedynie dla przejrzystości. Podkreśla, że akcja \fB\-print0\fP ma miejsce jedynie do rzeczy, do których nie zastosowano \fB\-prune\fP. Ponieważ domyślna zależność "and" (i) jest ściślejsza niż \fB\-o\fP, tak jest domyślnie, lecz nawiasy pomagają pokazać o co chodzi. . .IP \[bu] Podając następujący katalog projektu i powiązany katalog administracyjny SCM, wykonuje wydajne wyszukiwanie korzeni projektów: .nf \& .in +4m \fB$ find repo/ \e\fP .in +4m \fB\e( \-exec test \-d \(aq{}/.svn\(aq \e; \e\fP \fB\-or \-exec test \-d \(aq{}/.git\(aq \e; \e\fP \fB\-or \-exec test \-d \(aq{}/CVS\(aq \e; \e\fP \fB\e) \-print \-prune\fP .in -4m .in -4m \& .fi Przykładowe wyjście: .nf \& .in +4m \fBrepo/project1/CVS\fP \fBrepo/gnu/project2/.svn\fP \fBrepo/gnu/project3/.svn\fP \fBrepo/gnu/project3/src/.svn\fP \fBrepo/project4/.git\fP .in \& .fi W tym przykładzie, \fB\-prune\fP zapobiega niepotrzebnemu zagłębianiu się w już odkryte katalogi (np. nie szuka się w \fIproject3/src\fP, ponieważ znaleziono już \fIproject3/.svn\fP), lecz znajduje katalogi sąsiednie (\fIproject2\fP i \fIproject3\fP). . .SS "Inne przydatne przykłady" .IP \[bu] Wyszukiwanie różnych typów plików. .nf \& .in +4m \fB$ find /tmp \-type f,d,l\fP .in \& .fi Search for files, directories, and symbolic links in the directory \fI/tmp\fP passing these types as a comma\-separated list (GNU extension), which is otherwise equivalent to the longer, yet more portable: .nf \& .in +4m \fB$ find /tmp \e( \-type f \-o \-type d \-o \-type l \e)\fP .in \& .fi . .IP \[bu] Search for files with the particular name \fIneedle\fP and stop immediately when we find the first one. .nf \& .in +4m \fB$ find / \-name needle \-print \-quit\fP .in \& .fi . .IP \[bu] Demonstrate the interpretation of the \fB%f\fP and \fB%h\fP format directives of the \fB\-printf\fP action for some corner\-cases. Here is an example including some output. .nf \& .in +4m \fB$ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find \-maxdepth 0 \-printf '[%h][%f]\en'\fP \fB[.][.]\fP \fB[.][..]\fP \fB[][/]\fP \fB[][tmp]\fP \fB[/tmp][TRACE]\fP \fB[.][compile]\fP \fB[compile/64/tests][find]\fP .in \& .fi . .SH "STATUS ZAKOŃCZENIA" \fBfind\fP wychodzi ze statusem 0, gdy pomyślnie przetworzono wszystkie pliki i większym niż 0, gdy wystąpił błąd. Jest to bardzo ogólny opis, lecz gdy zwracaną wartością nie jest zero, nie powinno się po prostu polegać na poprawności wyników \fBfind\fP. When some error occurs, \fBfind\fP may stop immediately, without completing all the actions specified. For example, some starting points may not have been examined or some pending program invocations for \fB\-exec\ \&...\&\ {}\ +\fP or \fB\-execdir\ \&...\&\ {}\ +\fP may not have been performed. . .SH HISTORIA Od findutils\-4.2.2, metaznaki powłoki (np. "*", "?" lub "[]") używane we wzorcach nazw plików dopasują początkowe ".", ponieważ wymaga tego interpretacja 126 IEEE POSIX. .P Od findutils\-4.3.3, \fB\-perm\ /000\fP dopasowuje wszystkie pliki, zamiast żadnego. .P W findutils\-4.3.3 zaimplementowano nanosekundową rozdzielczość znaczników czasu. .P Od findutils\-4.3.11, akcja \fB\-delete\fP ustawia kod zakończenia \fBfind\fP na wartość niezerową, jeśli się nie powiedzie. \fBfind\fP nie wyjdzie jednak od razu. Wcześniej, kod zakończenia \fBfind\fP nie zmieniał się pod wpływem niepowodzenia \fB\-delete\fP. .TS l l l . Funkcja Dodana w Pojawia się też w \-files0\-from 4.9.0 \fB\-newerXY\fP 4.3.3 BSD \fB\-D\fP 4.3.1 \fB\-O\fP 4.3.1 \fB\-readable\fP 4.3.0 \fB\-writable\fP 4.3.0 \fB\-executable\fP 4.3.0 \fB\-regextype\fP 4.2.24 \fB\-exec ... +\fP 4.2.12 POSIX \fB\-execdir\fP 4.2.12 BSD \fB\-okdir\fP 4.2.12 \fB\-samefile\fP 4.2.11 \fB\-H\fP 4.2.5 POSIX \fB\-L\fP 4.2.5 POSIX \fB\-P\fP 4.2.5 BSD \fB\-delete\fP 4.2.3 \fB\-quit\fP 4.2.3 \fB\-d\fP 4.2.3 BSD \fB\-wholename\fP 4.2.0 \fB\-iwholename\fP 4.2.0 \fB\-ignore_readdir_race\fP 4.2.0 \fB\-fls\fP 4.0 \fB\-ilname\fP 3.8 \fB\-iname\fP 3.8 \fB\-ipath\fP 3.8 \fB\-iregex\fP 3.8 .TE .P The syntax \fB\-perm +MODE\fP was removed in findutils\-4.5.12, in favour of \fB\-perm\fP \fB/MODE\fP. The \fB+MODE\fP syntax had been deprecated since findutils\-4.2.21 which was released in 2005. . .SH "TO NIE SĄ BŁĘDY" .SS "Zaskakująca kolejność operatorów" The command \fBfind . \-name afile \-o \-name bfile \-print\fP will never print \fIafile\fP because this is actually equivalent to \fBfind . \-name afile \-o \e( \-name bfile \-a \-print \e)\fP. Remember that the precedence of \fB\-a\fP is higher than that of \fB\-o\fP and when there is no operator specified between tests, \fB\-a\fP is assumed. .SS "\(lqpaths must precede expression\(rq error message" .nf \fB$ find . \-name *.c \-print\fP find: paths must precede expression find: possible unquoted pattern after predicate `\-name'? .fi .P This happens when the shell could expand the pattern \fI*.c\fP to more than one file name existing in the current directory, and passing the resulting file names in the command line to \fBfind\fP like this: .nf . \fBfind . \-name frcode.c locate.c word_io.c \-print\fP . .fi That command is of course not going to work, because the \fB\-name\fP predicate allows exactly only one pattern as argument. Instead of doing things this way, you should enclose the pattern in quotes or escape the wildcard, thus allowing \fBfind\fP to use the pattern with the wildcard during the search for file name matching instead of file names expanded by the parent shell: .nf \fB$ find . \-name \(aq*.c\(aq \-print\fP \fB$ find . \-name \e*.c \-print\fP .fi . .SH USTERKI Występują pewne zagrożenia związane z bezpieczeństwem, będące wynikiem tego, co standard POSIX przewiduje dla \fBfind\fP \- dlatego nie mogą być naprawione. Na przykład akcja \fB\-exec\fP jest niebezpieczna i powinno się używać w zamian \fB\-execdir\fP. . .P Zmienna środowiskowa \fBLC_COLLATE\fP nie ma wpływu na akcję \fB\-ok\fP. . .SH ZGŁASZANIE BŁĘDÓW Strona internetowa z pomocą GNU findutils: .br O błędach tłumaczenia programu prosimy poinformować przez .PP Wszelkie inne problemy prosimy zgłaszać za pomocą systemu śledzenia błędów GNU Savannah: .RS .RE Do ogólnej dyskusji na tematy związane z pakietem GNU findutils służy lista dyskusyjna \fIbug\-findutils\fP: .RS .RE . .SH PRAWA AUTORSKIE Copyright \(co 1990\-2022 Free Software Foundation, Inc. Licencja GPLv3+: GNU GPL w wersji 3 lub późniejszej . .br Jest to wolne oprogramowanie: można je zmieniać i rozpowszechniać. Nie ma ŻADNEJ GWARANCJI, w granicach określonych przez prawo. . .SH "ZOBACZ TAKŻE" \fBchmod\fP(1), \fBlocate\fP(1), \fBls\fP(1), \fBupdatedb\fP(1), \fBxargs\fP(1), \fBlstat\fP(2), \fBstat\fP(2), \fBctime\fP(3) \fBfnmatch\fP(3), \fBprintf\fP(3), \fBstrftime\fP(3), \fBlocatedb\fP(5), \fBregex\fP(7) .PP Pełna dokumentacja: .br albo dostępna lokalnie przez: \fBinfo find\fP .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .