Linux және Unix командаларын пайдалану: табу

Linux және Unix пәрмені каталог иерархиясында файлдарды іздейді.

Табу пәрмені үшін синтаксис:

[жол ...] [өрнек]

Сипаттама

Бұл нұсқаулық GNU нұсқасын анықтайды. Пәрмен анықталған нәтижеге шыққанға дейін басымдық ережелеріне сәйкес (төмендегі операторлар бөлімін қараңыз) сәйкес берілген сөзді солдан оңға қарай бағалау арқылы әрбір берілген файл атауына негізделген каталог ағашын іздейді; Басқаша айтқанда, сол жағы жалған болып табылады және операция үшін дұрыс, немесе қай нүктеде келесі файл атауына ауысады.

Бірінші аргумент басталады:

сөйлемнің бастамасы ретінде қабылданады; кез-келген аргументтер іздеу жолдары және кез-келген аргументтерді қалған өрнек болғаннан кейін жасайды. Ешқандай жол берілмесе, ағымдағы каталог қолданылады. Егер ешқандай өрнек берілмесе, өрнек- жазба пайдаланылады.

Егер барлық қателер пайда болса, барлық файлдар сәтті өңделсе, 0-ден 0-ден бастап табуға болады.

Өрнектер

Өрнек опциялардан тұрады (белгілі бір файлды өңдеуден гөрі жалпы операцияға әсер етеді және әрдайым шындықты қайтарады), сынақтар (шын немесе жалған мәнді қайтарады) және әрекеттер (жанама әсерлер бар және шын немесе жалған мән), барлық операторлар бөледі. Өрнек - оператор қабылданбаған жағдайда қабылданады. Егер өрнекте -prune- ден басқа әрекеттер болмаса , онда -принципу шындық болып табылатын барлық файлдарда орындалады.

Опциялар

Барлық опциялар әрқашан шын болады. Олар əрдайым əрдайым күшіне енеді, əрі олардың сөйлемдегі орынға жеткен кезде ғана өңделеді. Сондықтан түсінікті болу үшін оларды сөздің басында орналастыру керек.

-Daystart Бүгінгі күннен бастап 24 сағат бұрын емес , уақытты өлшеу (for -amin, -atime, -min, -ctime, -mmin және -mtime ).
- деп түсіндірді Әр каталогтың мазмұнын каталогтың өзінде бұрын өңдеңіз.
-қолданыңыз Сілтілік байланыстар. Импульс-нолаф .
-help немесе --help Табу және шығу пәрмен жолы пайдаланудың қысқаша мазмұнын басып шығарыңыз.
-maxdepth [сан] Пәрмен жолының аргументтерінің төменгі бөліктерінің көптеген деңгейлерінде (теріс емес бүтін сан) шығарыңыз. -maxdepth 0 өрнегі тек сынақтар мен әрекеттерді пәрмен жолы дәлелдеріне қолдануға арналған.
-мәндік [сан] Сандан аз деңгейде (теріс емес бүтін сан) ешқандай сынақ немесе әрекет қолданбаңыз. Өрнегі - 1 пәрмен жолы дәлелдерінен басқа барлық файлдарды өңдеуді білдіреді.
-бөлім Басқа файлдық жүйелердегі каталогтарды түсірмеңіз. Басқа табуға болатын нұсқалармен үйлесімді болу үшін, -xdev үшін баламалы атау.
- нолаф Каталогтарда олардың қатаң сілтеме санынан 2-ге дейін қосымша каталог бар деп болжап оптимизация жасамаңыз *.
- түрлендіру немесе - түрлендіру Табу нұсқасының нөмірін басып шығыңыз.
-xdev Басқа файлдық жүйелердегі каталогтарды түсірмеңіз.

* Бұл опция CD-ROM немесе MS-DOS файлдық жүйелері немесе AFS көлемді орнату нүктелері сияқты Unix каталог-сілтеме конвенциясына сәйкес келмейтін файлдық жүйелерді іздеу кезінде қажет. Кәдімгі Unix файлдық жүйесіндегі әр каталог кемінде екі қатты сілтеме бар: оның аты және оның атауы . (кезең) кіреді. Сонымен қатар, оның қосалқы каталогтары (бар болса) әрқайсысы осы каталогқа байланысты.

Каталогтар каталогты қарап шығуға қарағанда екі кіші каталогты анықтағаннан кейін, каталогты қарап шығу кезінде, каталогтағы жазбалардың қалған бөлігі каталогтар емес (каталог ағашында жапырақ файлдары) екенін біледі. Егер тек файлдардың атаулары тексерілу қажет болса, оларды талап етудің қажеті жоқ; бұл іздеу жылдамдығын айтарлықтай арттырады.

Тесттер

Сан аргументтерді келесідей көрсетуге болады:

+ n N қарағанда үлкен .
N қарағанда аз .
n Нақты айтқанда .
-амин Файл соңғы рет n минут бұрын қол жетімді болды.
-ақпарат [файл] Файл соңғы рет өзгертілгеннен кейін соңғы рет қол жетімді болды. - жаңадан пайда болған жағдайда ғана - кейінгі - пәрмен жолында жаңадан пайда болған жағдайда ғана орындаңыз.
- уақыт n Файл соңғы рет қол жетімді болды * 24 сағат бұрын.
-cmin n Файл мәртебесі n минут бұрын өзгертілген.
-жүкте [файл] Файлдың күйі өзгертілгеннен бері жақында өзгертілді.
- cnewer -түйінше - пәрмен жолында жаңадан пайда болған жағдайда - жалғастырыңыз.
-ақд Файлдың мәртебесі n * 24 сағат бұрын өзгертілген.
-бос Файл бос, әдеттегі файл немесе каталог.
-фале Әрқашан жалған.
-фстип [тип] Файл көрсетілген түрдегі файлдық жүйеде. Жарамды файлдық жүйе түрлері Unix нұсқасының әртүрлі түрлеріне байланысты болады; Unix немесе басқа нұсқаларында қабылданған файлдық жүйенің толық емес тізімі: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Файлдық жүйелердің түрлерін көру үшін% f нұсқаулығымен -printf пайдалануға болады.
-дейт n Файлдың сандық тобының идентификаторы n .
-group [gname] Файл gname тобына жатады (рұқсат етілген сандық топтық коды).
-жұмыс [үлгі] Like -name, бірақ матч кейіпкерге сезімтал емес.
- атау [үлгі] Like -name , бірақ матч кейіпкерге сезімтал емес. Мысалы, fo * және F Foo , FOO , foo , fOo және т.б. файл атауларына сәйкес келтіріңіз .
-inum n Файлда node нөмірі бар.
-ипат [үлгі] Ұқсас - жол , бірақ матч сезімтал болып табылады.
-yuregex [үлгі] Ұқсас -regex, бірақ матч кейіпкерге сезімтал емес.
n-n сілтемелері Файлда n сілтемелер бар.
-нам атауы [үлгі] Файл - бұл мазмұнның қабығы үлгісіне сәйкес келетін символдық сілтеме. Метакарактерлер емдеуге болмайды . арнайы.
-mmin n Файлдың деректері соңғы рет n минут бұрын өзгертілген.
-mtime n Файлдың деректері соңғы рет өзгертілді n * 24 сағат бұрын.
-атауы [үлгі] Файл атауы негізі (жойылған жетекші каталогтармен жол) қабық үлгісіне сәйкес келеді. Метакарактерлер ( * , ? , Және [] ) сәйкес келмейді . базалық аттың басында. Каталогты және оның астындағы файлдарды елемеу үшін -prune ; жолдың сипаттамасындағы мысалды қараңыз.
-newer [файл] Файл файлға қарағанда жақында өзгертілді. Жаңадан шыққан өрнектің әсеріне - егер -коластыру пәрмен жолында бұрын- соңды болған болса, - жалғастырыңыз.
көп емес Ешбір пайдаланушы файлдың сандық пайдаланушысының идентификаторына сәйкес келеді.
топ Бірде-бір топ файлдың сандық тобының идентификаторына сәйкес емес.
жол [үлгі] Файл атауы қабық үлгісінің үлгісіне сәйкес келеді. Метакарактерлер емдеуге болмайды . арнайы; мысалы, табу. -path './sr*sc ./src/misc (бар болса) каталогына арналған жазбаны басып шығарады. Толық каталог ағашын елемеу үшін, ағаштан әрбір файлды тексеруге емес, қолданыңыз. Мысалы, src / emacs каталогын және барлық файлдар мен каталогтарды өткізіп жіберу үшін және табылған басқа файлдардың атын басып шығару үшін келесідей әрекетті орындаңыз: Табу. -path './src/emacs' -prune -o -print
пип [режим] Файлдың рұқсат биттері [режим] (сегіздік немесе символикалық). Символдық режимдер 0 режимін ұшу нүктесі ретінде пайдаланады.
-пем-код Барлық рұқсат биттері [mode] файл үшін орнатылады.
- перм + режимі Кез келген рұқсат биттері [режим] файл үшін орнатылады.
-regex [үлгі] Файл атауы тұрақты өрнек үлгісіне сәйкес келеді. Бұл іздеу емес, тұтас жолдағы сәйкестік. Мысалы, ./fubar3 деп аталған файлды сәйкестендіру үшін сіз тұрақты өрнекті * пайдалана аласыз . немесе . * b. * 3 , бірақ b. * r3 .
-size n [bckw] Файл кеңістіктің n бірлігін пайдаланады. Бірліктер әдепкі бойынша 512 байтты блоктарды құрайды немесе егер b кейінгі болса, онда n c, егер c кейін келетін болса, онда к, егер к керек болса, килобайт; Көлемі жанама блоктарды санамайды, бірақ іс жүзінде бөлінбеген сирек файлдардағы блоктарды санайды.
-қатысу Әрқашан дұрыс.
-түр c Файл түрі c :
б Блок (аралық) арнайы
с Таңбалар (таңбаланбаған) ерекше
d Каталог
с Аталған құбыр (FIFO)
f Жүйелі файл
л Символдық сілтеме
с Сокет
D есік (Solaris)
- n Файлдың сандық пайдаланушысы - бұл n .
- Пайдаланылды n Файл мәртебесі өзгертілгеннен кейін соңғы күнде қол жетімді болды.
- Пайдаланушыларды біріктіру Файл пайдаланушы uname- ге тиесілі (сандық пайдаланушы идентификаторы рұқсат етілген).
-xtype c Егер файл символдық сілтеме болмаса, ttype сияқты. Символдық сілтемелер үшін: if -follow берілмесе, файл c түріндегі файлға сілтеме болса; егер -көрсетілсе , c болса, дұрыс. Басқаша айтқанда, символдық сілтемелер үшін,
-xtype - бұл -type тексерілмеген файл түрін тексереді.

Әрекеттер

-exec командасы ;

Команданы орындау; true болса, 0 күйі қайтарылады. Мынадай дәлелдер табуға болады, дәлел ретінде ''; ' кездеседі. `{} 'Жолы ағымдағы нұсқамен ауыстырылады, ол тек қана табылған дәлелдерде ғана емес, дәлірек айтқанда, кейбір нұсқалардағы сияқты, пәрменнің аргументтерінде орын алады. Осы екі конструкцияларды (\ \) бірге сақтау керек немесе оларды қабықтың кеңейтуінен қорғау үшін цитировать қажет болуы мүмкін. Команда бастапқы каталогта орындалады.

-fls файлы

Шын. сияқты -ls, бірақ -fprint сияқты файлға жазыңыз.

-fprint файлы

Шын. толық файл атауын файл файлына басып шығарыңыз . Егер табылған файл іске қосылған болса, ол жасалады; егер бар болса, ол қысқартылады. Файлдар `` / dev / stdout '' және `` / dev / stderr '' арнайы өңделеді; олар сәйкесінше стандартты шығыс пен стандартты қателік шығысына сілтеме жасайды.

-fprint0 файлы

Шын. like -print0, бірақ -fprint сияқты файлға жазыңыз.

-fprintf файл пішімі

Шын. -printf сияқты, бірақ -fprint сияқты файлға жазыңыз.

-ok командасы ;

Like -exec, бірақ алдымен пайдаланушыдан (стандартты енгізуде) сұраңыз; егер жауап «y» немесе «Y» -ден басталмаса, команданы орындамаңыз және «жалған» мәнін қайтармаңыз.

-баспа

Шын. стандартты өнімде толық файл атауын, одан кейін жаңа жолды басып шығарыңыз.

-print0

Шын. стандартты шығыс бойынша толық файл атауын, одан кейін нөлдік таңбаны басып шығарыңыз. Бұл іздеу нәтижелерін өңдейтін бағдарламалар дұрыс түсіндіретін жаңа жолдар бар файл атауларына мүмкіндік береді.

-printf пішімі

Шын. стандартты шығыс бойынша басып шығару пішімі , '\' escapes және `% 'директиваларын түсіндіру. Өріс ені мен дәлдігі 'printf' C функциясында көрсетілгендей болуы мүмкін. Баспадан айырмашылығы, -printf жолдың соңында жаңа сызық қосады. Қашулар мен директивалар:

\ a

Дабыл сигналы.

\ b

Backspace.

\ c

Осы пішімнен басып шығаруды бірден тоқтатыңыз және шығысын шығарыңыз.

\ f

Пішін беру.

\ n

Жаңа желі.

\ r

Тасымалдауды қайтару.

\ t

Көлденең қойынды.

\ v

Тік кесте.

\\

Кәдімгі кері қиғаш сызық ('\').

\ NNN

ASCII коды NNN (сегіз) болып табылатын таңба.

Кез келген басқа символдан кейін `\ 'таңбасы қарапайым таңба ретінде қарастырылады, сондықтан екеуі де басып шығарылады.

%%

Күмән пайыз белгісі.

% a

Файлдың C `ctime функциясы арқылы қайтарылған пішімдегі соңғы кіру уақыты.

% A k

Файлдың соңғы қол жеткізу уақыты '@' немесе 'C` strftime' функциясының директивасы k арқылы анықталған пішімде. K үшін ықтимал мәндер төменде келтірілген; олардың кейбіреулері жүйелердің арасында «strftime» айырмашылығына байланысты барлық жүйелерде қол жетімді болмауы мүмкін.

@

1 қаңтардан бастап 1970, 00:00 GMT.

Уақыт өрістері:

H

сағат (00..23)

Мен

сағат (01..12)

k

сағат (0..23)

л

сағат (1..12)

М

минут (00..59)

с

жергілікті AM немесе PM

r

уақыт, 12 сағат (hh: mm: ss [AP] M)

S

екінші (00..61)

Т

уақыт, 24 сағат (hh: mm: ss)

X

жергілікті уақыттың көрінісі (H: M: S)

Z.

уақыт белдеуі (мысалы, EDT) немесе ешқандай уақыт белдеуі анықталмаса, ештеңе болмайды

Күн өрістері:

а

жергілікті күннің қысқартылған есімі (Sun..Sat)

A

жергілікті күннің толық атауы, айнымалы ұзындық (жексенбі ... күн)

б

жергілікті айдың қысқартылған ай атауы (Jan..Dec)

B

жергілікті айдың толық айы, айнымалы ұзындық (қаңтар - желтоқсан)

с

жергілікті күні мен уақыты (04.11.2013 EST 1989)

d

ай күні (01..31)

D

күн (мм / г / г)

с

сол сияқты b

j

Жыл күні (001..366)

м

ай (01..12)

U

аптаның бірінші күні ретінде жексенбі күнін (00..53)

w

аптаның күні (0..6)

W

аптаның бірінші күні ретінде дүйсенбіден бастап (00..53)

x

жергілікті күннің көрінісі (мм / г / г)

y

жылдың соңғы екі саны (00..99)

Y

жыл (1970 ...)

% b

512 байттық блоктардағы файл өлшемі (дөңгеленген).

% c

Файлдың соңғы күйін өзгерту уақыты C `ctime функциясымен қайтарылған пішімде.

% C k

Файлдың соңғы күйін өзгерту уақыты% A үшін бірдей болатын k түрінде көрсетіледі.

% d

Каталогтың ағашында файлдың тереңдігі; 0 - пәрмен жолының аргументі болып табылады.

% f

Кез келген жетекші каталогтармен файл атауы жойылды (тек соңғы элемент).

% F

Файлдық жүйенің түрі файлдың қосулы болуы; бұл мән -fstype үшін пайдаланылуы мүмкін.

% g

Егер топтың аты болмаса, файлдың топ атауы немесе сандық топтық идентификатор.

% G

Файлдың сандық топтық идентификаторы.

% h

Файлдың атауының жетекші каталогтары (барлығы соңғы элемент).

% H

Файл табылған пәрмен жолы дәлел.

% i

Файлдың инод нөмірі (ондық сан).

% k

1K блоктардағы файл өлшемі (дөңгеленген).

% l

Символдық сілтеме объектісі (егер бос жол символдық сілтеме болмаса).

% m

Файлдың рұқсат биттері (сегіздік).

% n

Файлға қатқыл сілтемелер саны.

% p

Файлдың аты.

% P

Пәрмен жолы дәлелінің атауы бар файл атауы оның астында жойылды.

% s

Байт көлеміндегі файл өлшемі.

% t

Файлдың C `ctime функциясымен қайтарылған пішімдегі соңғы өзгеру уақыты.

% T k

Файлдың соңғы рет өзгеру уақыты,% A үшін бірдей болатын k түрінде көрсетіледі.

% u

Пайдаланушының аты жоқ болса, файлдың пайдаланушы аты немесе сандық пайдаланушы идентификаторы.

% U

Файлдың сандық пайдаланушысы.

Әрбір басқа таңбадан кейінгі '%' таңбасы жойылады (бірақ басқа таңба басып шығарылады).

-алхоры

Егер-деп айтылмаса, шын; ағымдағы каталогты түсірмеңіз.
Егер - деп айтылса, жалған; әсер етпейді.

-l

Шын. Ағымдағы файлды стандартты шығарудағы `ls -dils 'форматында тізімдеңіз. Егер POSIXLY_CORRECT айнымалы мәні орнатылса, блок есептегіш 1K блоктардан тұрады, бұл жағдайда 512 байт блоктары пайдаланылады.

Операторлар

Басымдықты төмендету тәртібінде:

( expr )

Басымдылық күші.

! түсіндіріңіз

Егер expr - жалған болса.

- түсініксіз

Сол сияқты! түсіндіріңіз .

expr1 expr2

Және (болжалды); expr1 жалған болса, expr2 бағаланады.

expr1 -a expr2

Expr1 expr2 сияқты .

expr1 - және expr2

Expr1 expr2 сияқты .

expr1 -o expr2

Немесе; Егер expr1 шын болса, expr2 бағаланады.

expr1 -or expr2

Expr1 -o expr2 сияқты .

expr1 , expr2

Тізім; екеуі де expr1 және expr2 әрқашан бағаланады. Expr1 мәні жойылады; тізімнің мәні expr2 мәні болып табылады.

Мысалдар

Табу / home-user joe

Әрбір файлды пайдаланушыға арналған каталогта / үйде табыңыз.

find / usr -name * стат

«.stat» ішінде аяқталған / usr каталогындағы әрбір файлды табыңыз.

find / var / spool -mtime +60

60 күн бұрын өзгертілген каталог / var / spool файлының әрбір файлын табыңыз.

find / tmp -name ядросы-f -print | xargs / bin / rm -f

/ Tmp каталогындағы немесе одан төмен файлдарды табыңыз және оларды жойыңыз. Жаңа сызықтары, жалғыз немесе қос тырнақшалары немесе бос орындар бар кез-келген файл атаулары болса, бұл дұрыс жұмыс істемейтінін ескеріңіз.

find / tmp -name core -type f -print0 | файлын табу xargs -0 / bin / rm -f

/ Tmp каталогының ішіндегі немесе астындағы файлдарды табыңыз және олардың файлын немесе бір немесе екі қос тырнақшалары, кеңістіктері немесе жаңа сызықтары бар каталог атаулары дұрыс өңделгендей файл атауын өңдеңіз. Әрбір файлға stat (2) қоңырау шалудан аулақ болу үшін - атауды сынау - алдын-ала тесттен басталады.

табу. -type f -exec файлы '{}' \;

Ағымдағы файлдың әрбір файлында 'file' файлын іске қосады. Назар аударыңыз, жақшалар ұпайлар белгілерінің біреуіне аударылады, оларды интерпретациядан қорғану скриптиялық пунктуация ретінде қорғауға болады. Нүктелі үтіктеу кері қиғаш сызықпен де қорғалады, бірақ ';' бұл жағдайда да пайдаланылуы мүмкін еді.

Табу / \ (-perm -4000 -fprintf /root/suid.txt '% # m% u% p \ n' \), \ \ (-size + 100M -fprintf /root/big.txt '% -10s% p \ n '\)

Файлды жүйеге бір рет жылжытыңыз , setroid файлдары мен каталогтарын /root/suid.txt файлына және үлкен файлдарды /root/big.txt файлына енгізіңіз.

Табу $ HOME -мәзір 0

Соңғы жиырма төрт сағатта өзгертілген үй каталогындағы файлдарды іздеңіз. Бұл пәрмен осы жолмен жұмыс жасайды, себебі әрбір файл соңғы рет өзгертілген уақыт 24 сағатқа бөлінеді және қалған қалдық жойылады. Бұл дегеніміз - уақытты анықтау

0 болса, файлды өткен уақытта өзгерту керек, ол 24 сағат бұрын жасалмаған.

табу. 664

Иелеріне және топтарына оқуға және жазуға рұқсаттары бар файлдарды іздеңіз, бірақ басқа пайдаланушылар оқып, бірақ жаза алмайды. Осы критерийлерге сәйкес келетін, бірақ басқа рұқсаттар биттері бар файлдар (мысалы, егер біреу файлды орындай алатын болса) сәйкес болмайды.

табу. -пем-664

Оқушыларға және топтарға оқуға және жазуға рұқсаттары бар және қандай да бір қосымша рұқсат биті бар (мысалы, атқарылатын бит) қатысуынсыз басқа пайдаланушылар оқитын файлдарды іздеу. Бұл 0777 режимі бар файлға сәйкес келеді, мысалы.

табу. - пип / 222

Біреудің (олардың иесі немесе топтары немесе басқа біреуі) жазатын файлдарды іздеу.

табу. - пип / 220 табу. -perm / u + w, g + w табу. -perm / u = w, g = w

Осы үш команданың бәрі бірдей нәрсе жасайды, бірақ біреуі файл режимінің сегіздік көрінісін пайдаланады, екіншісі символдық пішінді пайдаланады. Бұл командалар барлық иелеріне немесе олардың тобына жазылатын файлдарды іздейді. Файлдар сәйкестендірілетін иелер мен топтар үшін жазылмайды; не істеу керек.

табу. -2020-ні табу. -p -g + w, u + w

Бұл екі команда бірдей нәрсені жасайды; иелеріне және олардың тобына жазуға болатын файлдарды іздеу.

табу. -перм -444-шөп / 222! - пермь / 111 табу. -пірма -a + r -perm / a + w! -пема / а + х

Бұл екі команданың бәрі үшін оқуға болатын (-perm -444 немесе -perm -a + r) файлдарды іздеу, ең болмағанда, бит жиынтығы (-perm / 222 немесе -perm / a + w) бар, бірақ орындалмайды кез келген адам үшін (! -perm / 111 және! -perm / a + x)

Маңызды: Жеке компьютерде пәрменді қалай пайдалану керектігін көру үшін man ( % man ) пәрменін пайдаланыңыз.