Най-популярните файлови мениджъри за операционните системи на ядрото на Linux имат доста функционален инструмент за търсене. Въпреки това, параметрите, които не винаги присъстват в него, са достатъчни за потребителя да търси необходимата информация. В този случай стандартната програма, която минава през терминала, идва на помощ. Тя ви позволява лесно да намерите необходимите данни в определена директория или в цялата система, като въведете команда, аргумент и опция.
Съдържанието
Командата find е предназначена за търсене на различни обекти, включително файлове от всякакви формати и директории с различна дълбочина. От потребителя се изисква само да въведе самата команда, да определи желаната стойност и да зададе аргументи за задаване на параметри на филтриране. Извършването на процедурата от самата програма обикновено не отнема много време, но зависи и от количеството сканирана информация. Сега да разгледаме по-подробно примерите за използване на намирането .
Като начало бих искал да се оттегля малко от основния екип и да докосна темата за допълнителни действия, които ще помогнат в бъдеще при управлението от конзолата. Факт е, че помощните програми в дистрибуциите на Линукс не се изострят от търсенето на всички елементи на компютъра. Всички процеси трябва да се стартират само с пълното местоположение на елементите или да отидете на местоположението чрез командата cd . Това може да се направи доста лесно:
cd /home/user/folder
, където потребителят е името на домашната папка на потребителя и папката е името на необходимата директория. Ако преди да използвате find , за да изпълните горните инструкции, можете да пропуснете пълния път до файла, при условие че той е в избраното местоположение. Подобно решение ще ускори значително входящите команди в бъдеще.
Когато стартирате find
от конзолата, която току-що стартирахте, ще получите резултатите от търсенето в домашната си директория на активния потребител. В друг случай, например, когато активирате по време на търсене по местоположение, в резултатите ще видите всички подпапки и файловете от това място в тях.
Активирането на търсене без аргументи и опции се използва, когато трябва да видите всички елементи едновременно. Ако името им не се вписва изцяло в низове, си струва да промените командата, така че да намери формата find . -print
find . -print
.
Командата за показване на файлове през даден път е почти същата като тази, която споменахме по-горе. Трябва също да укажете find
и след това да добавите ./folder
ако искате да разберете за директорията в текущото местоположение, или трябва да посочите пълния път, като напишете например find ./home/user/downloads/folder
, където е папката крайна директория Всеки елемент ще бъде показан в отделни редове в реда на тяхната дълбочина.
Понякога има нужда да се показват само обекти, които отговарят на името. След това потребителят трябва да зададе отделна опция за командата, така че да разбира жалбата. Входният ред приема формата: find .
-име "дума", където думата е ключова дума за търсене, която трябва да бъде написана в двойни кавички и с малки букви за всеки знак.
Ако не знаете точния случай на всяка буква, или искате да покажете всички съвпадащи имена, без да вземете предвид този параметър, въведете find . -iname "word"
в конзолата find . -iname "word"
find . -iname "word"
.
За да филтрирате резултатите по ключова дума, към аргумента -name се добавя още един. Командата е във формата за find . -not -name "word"
find . -not -name "word"
, където думата е дума, която трябва да бъде изтрита.
Все пак понякога има нужда да се намерят обекти с един ключ, като се изключва другото. След това на свой ред се задават няколко опции за търсене, а входната линия е следната: find . -name "word" -not name "*.txt"
find . -name "word" -not name "*.txt"
. Моля, обърнете внимание, че вторият аргумент в кавички показва " * .txt" , което означава, че намират работа не само с имената, но и с файловите формати, които са посочени в тази форма.
Има оператор ИЛИ . Тя ви позволява да намерите едно или няколко подходящи аргументи наведнъж. Всеки от тях се посочва отделно, с добавяне на съответните аргументи. Резултатът е нещо подобно: find -name "word" -o -name "word1"
.
Командата find ще помогне на потребителя дори когато той трябва да намери съдържанието на директории само до определената дълбочина, например, анализът не се изисква вътре в третата подпапка. За да зададете тези ограничения, въведете find . -maxdepth N -name "word"
find . -maxdepth N -name "word"
, където N е максималната дълбочина, а -name "word" е последващ аргумент.
В много директории има няколко папки с различно съдържание. Ако има голям брой от тях и търсенето трябва да се извърши само в определени, тогава ще трябва да посочите това, когато въвеждате find ./folder ./folder1 -type f -name "word"
и -name "word" - останалите аргументи.
Без съответния аргумент скритите обекти в сканираните директории няма да се показват в конзолата. Следователно, потребителят ръчно въвежда допълнителна опция, за да завърши с командата: find ~ -type f -name ".*"
. Ще получите пълен списък на всички файлове, но ако някои от тях не са достъпни, въведете sudo
в реда преди думата find, за да активирате правата на суперпотребителя.
Всеки потребител може да създаде неограничен брой директории и обекти на различни места. Най-бързият начин да намерите информацията, която принадлежи на един от потребителите, като използвате командата find и един от нейните аргументи. В списъка "Терминал" find . -user username
find . -user username
, където потребителското име е потребителското име. След въвеждане сканирането ще започне автоматично.
Приблизително същата схема работи с потребителските групи. Анализът на файловете, свързани с една от групите, се find /var/www -group groupname
чрез find /var/www -group groupname
. Не забравяйте, че може да има голям брой обекти и понякога отнема много време, за да ги изведете.
Операционната система автоматично записва датата на промяна на всеки съществуващ файл. Командата find ви позволява да намерите всички от тях по зададения параметър. Необходимо е само да регистрирате sudo find / -mtime N
, където N е броят на предишните дни, когато обектът е бил последно модифициран. Префиксът sudo тук е необходим за получаване на данни за файлове, предназначени само за суперпотребителя.
Ако се интересувате от преглед на елементи, които са били отворени преди няколко дни, редът малко се променя на sudo find / -atime N
Всеки обект има свой размер, съответно, командата за търсене на файлове трябва да има функция, която ви позволява да ги филтрирате по този параметър. find е в състояние да направи това, потребителят трябва само да зададе размера по аргумент. Просто въведете find / -size N
, където N е обемът в байтове, мегабайта (M) или гигабайта (G).
Можете да зададете обхвата на желаните елементи. След това квалификаторите се вписват в командата и вие получавате, например, следния ред: find / -size +500M -size -1000M
. Този анализ ще покаже файлове с повече от 500 мегабайта, но по-малко от 1000.
Някои от файловете или папките са празни. Те просто заемат допълнително дисково пространство и понякога пречат на нормалното взаимодействие с компютъра. Те трябва да бъдат намерени, за да се вземат решения за по-нататъшни действия, и find /folder -type f -empty
ще помогне с това, къде / папка е мястото, където се извършва сканирането.
Отделно, бих искал накратко да спомена други полезни аргументи, които от време на време стават полезни за потребителя:
-mount
- ограничение само за текущата файлова система; -type f
- само за показване на файлове; -type d
- показва само директории; -nogroup
, -nouser
- търсене на файлове, които не принадлежат на нито една група или не принадлежат на потребителя; -version
- разберете версията на използваната програма. На това познаване на командата find е завършена. Ако искате да изучавате подробно други стандартни конзолни инструменти на операционните системи на ядрото на Linux, съветваме ви да се обърнете към нашия отделен материал на следния линк.
Още подробности: Често използвани команди в терминала на Linux
След търсене на необходимата информация, можете да извършвате всякакви други действия с тях, например редактиране, изтриване или изучаване на съдържание. Това ще помогне на други вградени комунални услуги "Терминал" . Примери за тяхното използване са дадени по-долу.