Команда locate, используемая для поиска файлов и каталогов, очень быстрая, но имеет два основных
недостатка: у нее всего несколько опций, и, что наиболее важно, она выполняет поиск не в файловой системе в
реальном времени, а в собственном файле базы данных, который должен быть постоянно обновлена
еще одна команда linux, используемая для поиска файлов, это сложная утилита командной строки,
которая ищет файлы в каталоге и рекурсивно через его подкаталоги, а также
с помощью find вы можете искать файлы по имени, владельцу, типу группы, дате разрешений и другим критериям,
синтаксису команды find - это найти путь и критерии, давайте посмотрим на несколько примеров,
я создаю новый каталог с двумя файлами mkdir projects и нажимаю на проекты report.txt
и еще один файл в том же каталоге, чтобы сделать. txt
это дерево каталогов и найти путь к каталогу, который он будет искать в текущем каталоге
по имени, так что имя to do.txt, и он нашел файл как что-либо еще в Linux имя
файла чувствительно к регистру другой вариант - я имя который похож на name, но совпадение
нечувствительно к регистру, поэтому вместо name я буду использовать i name, и поиск будет нечувствительным к регистру,
если вы хотите указать только часть имени файла.
find будет искать по этому точному имени, поэтому найдите точку текущий рабочий каталог минус имя, которое нужно сделать,
и ничего не нашел, имя файла должно делать .txt, но я могу искать, как это сделать,
и звездочка он нашел все файлы, имена которых начинаются со строки, чтобы сделать звездочку здесь означает любой
символ, и когда вы используете метасимволы оболочки, рекомендуется заключать их в двойные кавычки,
поэтому лучше указать искомую строку, как это, лучше давайте попробуем другой найти минус
имя звезда репутация звезда и закрывающая двойная кавычка, и он нашел несколько файлы все файлы содержат
строку rep в именах файлов, чтобы найти и удалить файл, передайте опцию удаления с минусом, чтобы обнаружить, что
это приведет к удалению файла без возможности его восстановления, поэтому будьте очень осторожны,
найдите точку минус имя для do.txt минус удалить и файл был найден и удален,
если вы выполняете поиск в месте, которое ваш пользователь не может видеть, вы получите ошибку
отказа в разрешении найти ctc минус имя pa double swd в этом примере я рекурсивно искал файлы с
именем paswd в каталоге etc и есть некоторые каталоги, содержимое
которых не читается непривилегированным пользователем, которые отображают комментарий
для поиска в этих каталогах, мне также нужно запустить команду как root,
другой вариант, который вы можете передать, чтобы найти, - это минус ls,
и он выполнит команду ls в каждом файле он найдет минус ls
он выполнил ls для обоих файлов, давайте посмотрим, как искать файлы по типу, и для этого есть
опция типа минус, я ищу каталоги с помощью косой черты и т. д. найти косую черту ctc минус тип d минус
тип d означает каталог на самом деле я рекурсивно перечисляю все каталоги из slash dc и его подкаталогов,
это его поведение по умолчанию, которое требует времени и ресурсов, однако вы можете
указать глубину обхода каталога, используя параметр минус максимальная глубина минус max depth
2 эта команда будет искать каталоги в слэш tc и пойдет максимум на два уровня в
глубину, давайте добавим еще одну опцию минус сперма 755 Я ввел новую опцию минус сперма,
которая будет искать с этими точными разрешениями давайте посмотрим, сколько каталогов мы нашли
так что труба wc минус
и есть 254 каталога, и если я перейду на три уровня, у меня будет больше каталогов,
теперь есть 343 каталога, мы можем игнорировать это разрешение отклонено ошибки Я уже
объяснил вам, что они означают, обратите внимание, что когда вы указываете больше параметры или критерии поиска,
эти критерии должны быть истинными, в то же время на самом деле между ними есть логический конец, давайте посмотрим
другие полезные параметры для поиска по размеру, используйте параметр минус размер и число найти косую черту var
минус тип f минус размер 100 k минус ls он будет рекурсивно искать в каталоге vac файлы
размером в один килобайт, округленные до следующего блока, я выполню команду как root,
поэтому sudo и есть три файла, кстати, значение размера dis играет ls, кажется больше, но это
потому, что суффикс k отображает размер в unix 1024 байта, а не в unix 1000 байтов,
поэтому это только проблема отображения, вы также можете использовать префиксы плюс и минус для обозначения большего
и меньшего размера из n unix я ищу все файлы, размер которых превышает 10 мегабайт,
поэтому плюс 10 и m
и последние файлы, или я ищу файлы, размер которых меньше 10 килобайт
минус 10 k, это файлы, которые они меньше, чем 10 килобайт, вы также можете использовать параметр размера
много раз в той же команде, давайте найдем все файлы в косой черте var между 5 и 10 мегабайтами,
поэтому плюс 5 м и минус размер минус 10 м это файлы, которые они находятся между 5 и 10 мегабайтами,
давайте вперед и посмотрите, как искать по времени, времени доступа к времени изменения или изменить время
для поиска по отметкам времени, записанным в файлах, используйте параметры времени минус время минус m или минус c
и число, которое представляет количество дней, давайте найдем все файлы, которые были
изменены в l ast 24 часа или день найдите косую черту var, кстати, забытая косая черта в конце не имеет
значения, поэтому минус тип f минус m время 0 минус ls это файлы, измененные за последние 24 часа,
возможно, вам интересно, почему я использовал 0 как значение для времени m, потому что любая дробная часть игнорируется,
поэтому, если файл был изменен 12 часов назад в днях, это означает 0,5 дня, а дробная часть игнорируется,
поэтому на самом деле это означает 0 дней, давайте посмотрим другой пример, который я пишу 1 вместо 0.
если я использую минус m, время 1, это означает, что файлы, измененные между 1 и 2 днями назад, в
другом примере найдите косую черту var минус тип f минус время плюс один ls, он найдет файлы, к
которым был осуществлен доступ не менее двух дней назад, плюс один означает, что больше единицы и
два - следующее число больше единицы, поэтому доступ к файлу был осуществлен не менее двух дней назад,
если вы хотите искать по минутам вместо дня, используйте параметры минус a min m min или
c min, например, следующая команда будет найти файлы, которые были изменены за последний час,
и я ищу в var минус тип f минус м минус 60. Таким образом, время модификации
составляет менее 60 минут, это файлы, которые я запускаю, команда хороша,
они были изменены за последний час, давайте посмотрим другие параметры
поиска для поиска по владельцу, используйте параметр пользователя минус и поиск по группе используйте опцию minus group, которую
я ищу в каталоге косой черты var для файлов, которые принадлежат пользователю gdm,
за исключением пользователя gdm и minus ls, я буду запускать все эти команды, так как
это файлы, которые принадлежат этому пользователю и отрицать опцию использовать минус не
перед опцией, например, lex видеть все файлы, которые не принадлежат к корневой группе
root является как пользователем в группе в linux единственный пользователь, который принадлежит к корневой группе, хорош
я ищу в ctc я ищу файлы минус не минус корень группы
это файлы, которые не принадлежат к корневой группе