Linux і Unix камандная знаходка выконвае пошук файлаў у іерархіі каталогаў.
Сінтаксіс каманды пошуку:
знайсці [шлях ...] [выраз]
апісанне
Гэтая старонка кіраўніцтва дакументы версіі GNU з знаходцы. Каманда знаходкай шукае ў дрэве каталогаў з коранем у кожны дадзены імя файла, ацэньваючы дадзены выраз злева направа, у адпаведнасці з правіламі старшынства (гл раздзел аператараў ніжэй), пакуль вынік вядомы; Іншымі словамі, левы бок ілжывая для і аперацый, адносіцца да або, у які момант знайсці пераходзіць да наступнага імя файла.
Першы аргумент, які пачынаецца з:
- -
- (Або)
- ,
- !
бярэцца пачатак выразы; любыя аргументы перад ёй шляхі для пошуку, і любыя аргументы пасля яго астатнія выразы. Калі няма шляху не зададзены, выкарыстоўваецца бягучы каталог. Калі ніякае выраз ня зададзена, выкарыстоўваецца выраз -print.
Каманда знаходкі выходзіць са статусам 0 , калі ўсе файлы апрацоўваюцца паспяхова, больш , чым 0 ў выпадку ўзнікнення памылкі.
выразы
Выраз складаецца з опцый (якія ўплываюць на агульную працу, а не апрацоўкі пэўнага файла, і заўсёды вяртаюць TRUE), тэсты (якія вяртаюць сапраўднае або ілжывае значэнне), а таксама дзеянні (якія маюць пабочныя эфекты і вярнуць сапраўдным або ілжывае значэнне), усе аддзеленыя адзін ад аператараў. Выраз -А мяркуецца , дзе аператар апускаецца. Калі выраз не ўтрымлівае , акрамя -prune дзеянні, то -print выконваецца для ўсіх файлаў , для якіх выраз праўдзіва.
опцыі
Усе варыянты заўсёды вяртае ісціну. Яны заўсёды ўступаюць у сілу, а не апрацоўваецца толькі тады, калі іх месца ў выразе будзе дасягнута. Такім чынам, для яснасці, то лепш размясціць іх у пачатку выразы.
-daystart | Вымераць раз (для -amin, -atime, -cmin, -ctime, -mmin і -mtime) з пачатку сённяшняга дня , а не з 24 гадзін таму. |
-depth | Працэс ўтрымання кожнага каталога перад самай дырэкторыі. |
-follow | Разнаймення сімвалічных спасылак. Маецца на ўвазе -noleaf. |
-Дапамога або --help | Друк рэзюмэ выкарыстання каманднага радка знаходкі і выхаду. |
-maxdepth [нумар] | Схадзіце на найбольшую колькасць узроўняў (неадмоўнае цэлы лік) каталогаў ніжэй аргументаў каманднага радка. Выраз -maxdepth 0 азначае , прымяняюцца толькі тэсты і дзеянні , аргументы каманднага радка. |
-mindepth [нумар] | Не ўжываць любыя тэсты або дзеянні на узроўнях менш, чым колькасць (неадмоўнае цэлы лік). Выраз -mindepth 1 азначае апрацоўваць усе файлы , акрамя аргументаў каманднага радка. |
-mount | Ня спускацца каталогі на іншых файлавых сістэмах. Альтэрнатыўнае імя для -xdev, для сумяшчальнасці з некаторымі іншымі версіямі знайсці. |
-noleaf | Ня аптымізаваць, калі выказаць здагадку, што каталогі ўтрымліваюць 2 менш, чым падкаталогі іх жорсткіх спасылак. * |
-версія або --version | Вывесці нумар знаходкі версіі і выйсці. |
-xdev | Ня спускацца каталогі на іншых файлавых сістэмах. |
* Гэтая опцыя неабходная пры пошуку файлавых сістэм, якія не ідуць каталога спасылак юнікс, такія як CD-ROM або MS-DOS файлавых сістэм або AFS кропкі мантавання тамоў. Кожны каталог на звычайнай Unix файлавай сістэмы мае , па меншай меры , 2 жорсткіх спасылак: яго імя і яго. (Перыяд) ўваход. Акрамя таго, яго падкаталогах (калі такія маюцца) у кожнага ёсць .. запіс , звязаную з гэтай дырэкторыі.
Калі знаходку вывучае каталог, пасля таго, як ён statted два менш , чым падкаталогаў падліку спасылак самога каталога, ён ведае , што астатняя частка запісаў у каталогу зьяўляюцца не-каталогі (файлы ліст у дрэве каталогаў). Калі імёны толькі файлы павінны быць разгледжаны, няма неабходнасці стат іх; гэта дае значнае павелічэнне хуткасці пошуку.
тэсты
Лікавыя аргументы могуць быць вызначаны як:
+ п | Для атрымання больш п. |
-n | Менш чым за п. |
N | Для дакладнасці п. |
-amin п | Файл быў апошні доступ да п хвілін таму. |
-anewer [файл] | Файл быў апошнім даступны пазней , чым файл быў зменены. -anewer ўплывае -follow толькі калі -follow папярэднічае -anewer у камандным радку. |
-atime п | Файл быў апошні доступ да п * 24 гадзін таму. |
-cmin п | Статус файла апошняй змены п хвілін таму. |
-cnewer [файл] | Статус файла быў зменены ў апошні раз пазней, чым файл быў зменены. - cnewer ўплывае -follow толькі калі -follow папярэднічае -cnewer у камандным радку. |
-ctime п | Статус файла быў зменены ў апошні раз п * 24 гадзін таму. |
-empty | Файл пусты і з'яўляецца альбо звычайны файл або каталог. |
-False | Заўсёды фальшыва. |
-fstype [тып] | Файл знаходзіцца на файлавай сістэме названага тыпу. Дапушчальныя тыпы файлавых сістэм адрозніваюцца паміж рознымі версіямі Unix; няпоўны пералік тыпаў файлавых сістэм, якія прынятыя на некаторыя версіі Unix ці інакш: UFS, 4.2, 4.3, NFS, TMP, MFS, S51K, S52K. Вы можаце выкарыстоўваць -printf з дырэктывай% F, каб убачыць тыпы вашых файлавых сістэм. |
-gid п | Лікавая група файла ідэнтыфікатар н. |
-група [gname] | Файл належыць да групы gname (лікавы ідэнтыфікатар групы дазволена). |
-ilname [шаблон] | Як -lname, але матч не адчувальны да рэгістра. |
-iname [шаблон] | Як -name, але матч не адчувальны да рэгістра. Напрыклад, мадэлі оптавалаконны * і F ?? супадаюць з імёнамі файлаў Foo, Foo, Foo, Foo і г.д. |
-inum п | Файл мае індэксны дэскрыптар ліку п. |
-ipath [шаблон] | Як -path, але матч не адчувальны да рэгістра. |
-iregex [шаблон] | Як -regex, але матч не адчувальны да рэгістра. |
-links п | Файл мае п спасылкі. |
-lname [шаблон] | Твор з'яўляецца сімвалічнай спасылкай, змесціва якога адпавядае шаблоне абалонкі. Метасімвалы не лячыць / або. адмыслова. |
-mmin п | Дадзеныя файла Апошняе змяненне п хвілін таму. |
-mtime п | Дадзеныя файла Апошняе змяненне п * 24 гадзін таму. |
-name [шаблон] | База імя файла (шлях з вядучымі каталогамі выдалены) адпавядае шаблоне абалонкі. Метасімвалы (*,?, І []) не супадаюць а. у пачатку назвы базы. Каб ігнараваць каталог і файлы ў ім, выкарыстоўвайце -prune; убачыць прыклад у апісанні -path. |
-newer [файл] | Файл быў зменены пазней , чым файл. Выраз -newer ўплывае -follow толькі калі -follow папярэднічае -newer у камандным радку. |
-nouser | Ні адзін карыстальнік не адпавядае файлу лікавага ідэнтыфікатара карыстальніка. |
-nogroup | Ні адна група не адпавядае файла лікавы ідэнтыфікатар групы. |
-path [шаблон] | Імя файла адпавядае шаблоне шаблон абалонкі. Метасімвалы не лячыць / або. спецыяльна; так, напрыклад, знайсці. -path »./ sr * sc надрукуе запіс для каталога называецца ./src/misc (калі такі існуе). Каб ігнараваць усё дрэва каталогаў, выкарыстоўвайце -prune замест праверкі кожнага файла ў дрэве. Напрыклад, каб прапусціць каталог SRC / Emacs і ўсе файлы і каталогі пад ім, і друкаваць імёны іншых файлаў, знойдзеных, зрабіць нешта накшталт гэтага: знайсці. -path »./ src / emacs '-prune -o -print |
-perm [рэжым] | Біты правоў файла дакладна [рэжым] (васьмярковых або сімвалічныя). Сімвалічныя рэжымы рэжым 0 выкарыстоўваць у якасці адпраўной кропкі. |
-perm -mode | Усе біты дазволаў [рэжым] ўстаноўлены для файла. |
-perm + рэжым | Любы з біт дазволу [рэжым] усталяваны для файла. |
-regex [шаблон] | Імя файла адпавядае шаблоне рэгулярнага выразы. Гэта матч на ўсім шляху, а не пошук. Напрыклад, каб адпавядаць файл з імем ./fubar3, вы можаце выкарыстоўваць рэгулярны выраз. * Бар. ці. * б. * 3, але не б. * r3. |
-Памер п [bckw] | Файл выкарыстоўвае п адзінак прасторы. Адзінкі 512-байтавая блокі па змаўчанні , або калі б варта п, байты , калі з п варта, кілабайт , калі да наступнага п, або 2-байтавая словы , калі ш варта п. Памер не ўлічваецца ускосныя блокі, але гэта падлік блокаў у разрэджаных файлаў, якія на самай справе не выдзелены. |
-True | Заўсёды дакладна. |
-тыпу з | Файл тыпу з: |
б | Блок (буферизованный) |
з | Характар (небуферизован) спецыяльны |
d | каталог |
р | Названыя трубы (FIFO) |
е | звычайны файл |
L | сімвалічная спасылка |
s | разетка |
D | дзверы (Solaris) |
-uid п | Лікавы ідэнтыфікатар карыстальніка файла з'яўляецца н. |
-подержанные п | Файл апошняга звароту п дзён пасля яго статус апошняй змены. |
-user uname | Файл належыць карыстачу uname (лікавы ідэнтыфікатар карыстальніка дазволена). |
-xtype з | Гэтак жа , як -тыпу , толькі калі файл з'яўляецца сімвалічнай спасылкай. Для сімвалічных спасылак: калі -follow не было дадзена, праўда , калі файл ўяўляе сабой спасылку на файл тыпу с; калі -follow было дадзена, праўда , калі з л. Іншымі словамі, для сімвалічных спасылак, -xtype правярае тып файла , які тыпу не правярае. |
дзеянні
-exec каманда;
Выканаць каманду; праўда, калі 0 стан вяртаецца. Усе наступныя аргументы , каб знайсці прымаюцца быць аргументы каманды , пакуль аргумент , які складаецца з `;" сустракаецца. Радок `{}» замяняецца на імя бягучага апрацоўванага файла ўсюды гэта адбываецца ў аргументы каманды, а не толькі ў спрэчках , дзе ён адзін, як у некаторых версіях знайсці. Абодва гэтыя будынкі, магчыма, павінны быць экранаваныя (з `\ ') або ў двукоссі, каб абараніць іх ад экспансіі абалонкі. Каманда выконваецца ў зыходнай дырэкторыі.
-fls файл
Праўда; як -ls , але запіс у файл , як -fprint.
-fprint файл
Праўда; надрукаваць поўнае імя файла ў файл файл. Калі файл не існуе , калі знаходка запускаецца, ён ствараецца; калі яна сапраўды існуе, то ён абразаецца. Імёны файлаў `` / DEV / STDOUT '' і `` / DEV / STDERR '' апрацоўваюцца адмысловым чынам; яны ставяцца да стандартнага выхаду і стандартны вывад памылак, адпаведна.
-fprint0 файл
Праўда; як -print0 , але запіс у файл , як -fprint.
-fprintf фармат файла
Праўда; як -printf , але запіс у файл , як -fprint.
-ok каманда;
Як -exec але спытаць у карыстальніка першае (на стандартны ўвод); калі адказ не пачынаюцца з `у« ці 'Y », ня запускайце каманду і вярнуцца ілжывым.
Праўда; надрукаваць поўнае імя файла на стандартны вывад, за якім варта сімвал новага радка.
-print0
Праўда; надрукаваць поўнае імя файла на стандартны вывад, а затым нулявы знак. Гэта дазваляе імёны файлаў , якія ўтрымліваюць сімвалы новага радка , каб быць правільна інтэрпрэтаваныя праграмамі , якія апрацоўваюць выхад знайсці.
-printf фармат
Праўда; фармат друку на стандартны вывад, інтэрпрэтацыя '\ «уцёкаў і`%» дырэктыў. Поле шырыні і ўдакладненні могуць быць вызначаны як з PRINTF »функции` C. У адрозненне ад -print, -printf ня дадае сімвал новага радка ў канцы радка. У выслізгвае і дырэктывы:
\ а
Трывожны званок.
\ б
Backspace.
\ с
Неадкладна спыніце друк з гэтага фармату і прамываць выхад.
\ е
Форма падачы.
\ п
Newline.
\ г
Зварот карэткі.
\ т
Гарызантальная табуляцыя.
\ v
Вертыкальная ўкладка.
\\
Літаральны зваротны слеш ( '\').
\ NNN
Сімвал, ASCII код NNN (васьмярковай).
A \ сімвал `» варта любой іншай сімвал разглядаецца як звычайны сімвал, так як яны будуць надрукаваныя.
%%
Літаральны знак адсотка.
% у
Апошні раз атрымаць доступ да файла ў фармаце якое вяртаецца функцыяй C `CTIME».
% A K
Апошні раз атрымаць доступ да файла ў фармаце , зададзеным да, альбо з'яўляецца `« або дырэктывы для C `STRFTIME» функцыя @. Магчымыя значэння для да пералічаныя ніжэй; некаторыя з іх могуць быць недаступныя на ўсіх сістэмах, з-за адрозненняў у `STRFTIME» паміж сістэмамі.
@
секунд з 1 студзеня 1970 году, 00:00 паводле Грынвіча.
Поля часу:
H
гадзіну (00..23)
Я
гадзіну (01..12)
Да
гадзіну (0..23)
L
гадзіну (1..12)
M
хвіліны (00..59)
р
лакалі AM або PM
р
Час, 12-гадзінны (гг: мм: сс [AP] М)
S
другі (00..61)
T
Час, 24-гадзінны (гг: мм: сс)
X
прадстаўленне часу лакалі (Н: М: S)
Z
гадзінны пояс (напрыклад, EDT), ці нічога, калі зона не можа быць вызначана
Поля даты:
скарочаная назва дня тыдня (Sun..Sat)
поўная назва дня тыдня, пераменная даўжыня (Sunday..Saturday)
б
скарочаная назва месяца (Jan..Dec)
У
поўная назва месяца, пераменная даўжыня (January..December)
з
дата і час лакалі (сб 4 лістапада 00:02:33 EST 1989)
d
дзень месяца (01..31)
D
дата (мм / дд / гг)
гадзіну
такі ж, як б
J
дзень года (001..366)
м
месяц (01..12)
U
нумар тыдня ў году з нядзелі ў першы дзень тыдня (00..53)
вага
дзень тыдня (0..6)
W
нумар тыдня ў году з панядзелка ў першы дзень тыдня (00..53)
х
прадстаўленне даты лакалі (мм / дд / гг)
Y
апошнія дзве лічбы года (00..99)
Y
год (1970 ...)
% б
Памер файла ў блоках па 512 байт (акругляецца уверх).
% з
час апошняй змены статусу файла ў фармаце якое вяртаецца функцыяй C `CTIME».
% З да
Апошні раз файла статусу змены ў фармаце , зададзеным да, які з'яўляецца такім жа , як для% А.
% d
Глыбіня файла ў дрэве каталогаў; 0 азначае, што файл з'яўляецца аргументам каманднага радка.
% е
Імя файла з любымі вядучымі каталогаў выдаленыя (толькі апошні элемент).
% F
Тып файлавай сістэмы файл знаходзіцца на; гэта значэнне можа быць выкарыстана для -fstype.
% г
Імя групы файлаў, альбо лікавы ідэнтыфікатар групы, калі група не мае назвы.
% G
лікавая група файла ID.
% г
Вядучыя каталогі імя файла (усе, акрамя апошняга элемента).
% Н
Аргумент каманднага радка, пад якім быў знойдзены файл.
% я
нумар індэкснага дэскрыптара файла (у дзесятковай сістэме).
% да
Памер файла ў 1K блокаў (акругляецца уверх).
% л
Аб'ект сімвалічнай спасылкі (пустая радок, калі файл не з'яўляецца сімвалічнай спасылкай).
% м
біты правоў файла (у васьмярковай сістэме).
% п
Колькасць жорсткіх спасылак на файл.
% р
Імя файла.
% P
Імя файла з імем аргумент каманднага радка, пры якіх ён быў знойдзены выдалены.
% s
Памер файла ў байтах.
% т
час апошняй змены файла ў фармаце, якая вяртаецца функцыяй C `CTIME».
% Т да
Апошні раз файла змены ў фармаце , зададзеным да, які з'яўляецца такім жа , як для% А.
% U
Імя карыстальніка файла, ці лікавы ідэнтыфікатар карыстальніка, калі карыстальнік не мае назвы.
% U
лікавы ідэнтыфікатар карыстальніка файла.
Сімвал `%», а затым любы іншы сімвал адкідаецца (але іншы сімвал друкуецца).
-prune
Калі -depth не дадзена, праўда; ня апускайцеся бягучы каталог.
Калі -depth дадзена, ілжыва; няма эфекту.
-ls
Праўда; спіс бягучага файла ў фармаце `LS -dils 'на стандартны вывад. Адлікі блокаў маюць 1K блокаў, калі зменная POSIXLY_CORRECT асяроддзя не ўсталяваная, і ў гэтым выпадку выкарыстоўвае 512-байтавая блокі.
аператары
Уключаны ў спіс у парадку змяншэння прыярытэту:
(Выраз)
Прымусьце прыярытэт.
! выказваючы
Праўда , калі выраз фальшыва.
-не выказваючы
Тое ж самае! выяўленыя.
expr1 expr2
І (подразумеваете); expr2 ня вылічаецца , калі expr1 з'яўляецца ілжывым.
выражение1 -a выражение2
Тое ж Expr1 expr2.
выражение1 й expr2
Тое ж Expr1 expr2.
выражение1 -o expr2
ці; expr2 ня вылічаецца , калі expr1 гэта праўда.
выражение1 не разагнаўся expr2
Тое ж, што выражение1 -o expr2.
expr1, expr2
спіс; як expr1 і expr2 заўсёды вылічаюцца. Значэнне expr1 адкідаецца; значэнне спісу значэнне expr2.
прыкладаў
знайсці / дом -user джоЗнайсці ўсе файлы ў дырэкторыі / дома, якія належаць карыстачу Джо.
знайсці / USR -name * статЗнайсці ўсе файлы ў дырэкторыі / USR, якія сканчаюцца на «.stat».
знайсці / уаг / залатнік -mtime +60Знайсці ўсе файлы ў каталогу / вар / катушка, які быў зменены больш чым 60 дзён таму.
знайсці / TMP -name ядро тыпу F -print | xargs / бен / ГТ -fЗнайсці файлы з імем ядра ці ніжэй каталога / TMP і выдаліць іх. Звярніце ўвагу, што гэта будзе працаваць няправільна, калі ёсць якія-небудзь імёны файлаў, якія змяшчаюць сімвалы новага радка, адзінарныя або двайныя двукоссі, ці прабелы.
знайсці / TMP -name ядро тыпу F -print0 | xargs -0 / бен / ГТ -fЗнайсці файлы з імем ядра ці ніжэй каталога / TMP і выдаліць іх, імёны файлаў , апрацоўку такім чынам , што ў імёнах файлаў і каталогаў , якія змяшчаюць адзінарныя або двайныя двукоссі, прабелы або пераклады радкоў правільна апрацаваны. -name выпрабаванне прыходзіць перад выпрабаваннем -тыпу для таго , каб пазбегнуць таго , каб тэлефанаваць стат (2) на кожны файл.
знайсці. -тыпу е -exec файл '{}' \;Запускае файл `» на кожны файл у або ніжэй бягучага каталога. Звярніце ўвагу, што дужкі складаюцца ў адзінарныя двукоссі, каб абараніць іх ад інтэрпрэтацыі як сцэнар абалонкі пунктуацыі. Кропка з коскі гэтак жа абаронены выкарыстанне зваротнай касой рысы, хоць і «;» можна было б выкарыстоўваць у гэтым выпадку.
знайсці / \ (-perm -4000 -fprintf /root/suid.txt '% # м% U% р \ N' \), \ \ (-Памер + 100M -fprintf /root/big.txt «% -10s% р \ п »\)Траверсу файлавай сістэмы толькі адзін раз, пералічваючы Ўіп файлаў і каталогі ў /root/suid.txt і вялікія файлы ў /root/big.txt.
знайсці $ HOME -mtime 0Пошук файлаў у хатняй дырэкторыі, якія былі змененыя на працягу апошніх дваццаці чатырох гадзін. Гэтая каманда працуе так, таму што час, так як кожны апошняга змянення файла дзеліцца на 24 гадзін і любы рэшту адкідаецца. Гэта азначае , што ў адпаведнасці -mtime
0, файл будзе мець мадыфікацыі ў мінулае , якое складае менш за 24 гадзін таму.
знайсці. -perm 664Пошук файлаў, якія чытанне і запіс для іх уладальніка і групу, але якія іншыя карыстальнікі могуць чытаць, але не пісаць. Файлы, якія адказваюць гэтым крытэрам, але маюць іншыя дазволу біты, устаноўленыя (напрыклад, калі хто-то можа выканаць файл) не будзе адпавядаць.
знайсці. -perm -664Пошук файлаў, якія чытанне і запіс для іх уладальніка і групы, і якія іншыя карыстальнікі могуць чытаць, па-за залежнасці ад наяўнасці якіх-небудзь дадатковых бітаў дазволу (напрыклад, выкананы біт). Гэта будзе адпавядаць файл, які мае рэжым 0777, напрыклад.
знайсці. -perm / 222Пошук файлаў, якія даступныя для запісу кімсьці (іх уладальніка, альбо іх групы ці хто-небудзь іншы).
знайсці. -perm / 220 знаходка. -perm / і + ш, г + W знайсці. -perm / і = ш, г = шУсе тры гэтыя каманды робяць тое ж самае, але першы выкарыстоўвае васьмярковай ўяўленне файлавага рэжыму, а два іншых выкарыстоўваць сімвалічную форму. Гэтыя каманды ўсё шукаць файлы, якія даступныя для запісу альбо іх уладальніка або іх групы. Файлы не павінны быць даступныя для запісу як ўладальніка і групы павінны быць узгоднены; альбо будзе рабіць.
знайсці. -perm -220 знаходкі. -perm -g + W, і + шАбедзве гэтыя каманды робяць тое ж самае; пошук файлаў, якія даступныя для запісу як іх уладальніка і іх групы.
знайсці. -perm -444 -perm / 222! -perm / 111 знаходкай. -perm -a + г -perm / а + ш! -perm / а + хГэтыя дзве каманды і пошук файлаў, якія могуць быць прачытаныя для кожнага (-perm -444 або -perm -a + г), маюць па меншай меры на запісы набору біт (-perm / 222 або -perm / A + W), але не з'яўляюцца выкананымі для каго (! -perm / 111 і! -perm / а + х адпаведна)
Важна: Выкарыстоўвайце каманду чалавека (%) чалавек , каб паглядзець , як каманда выкарыстоўваецца на вашым канкрэтным кампутары.