Команда Linux FIND с примерами
Знаете ли вы, сколько файлов в новой установке Linux ? Если вы используете PopOS! Например, дистрибутив Linux(Linux distribution) содержит более 31 000 файлов. Это еще до того, как вы начнете создавать какие-либо документы, хранить музыку, загружать PDF(PDFs) -файлы или упорядочивать изображения.
Из-за этого поиск нужного файла или папки в Linux , когда вам это нужно, становится проблемой. В этой статье вы узнаете, как использовать команду Linux FIND , и мы дадим вам все возможные примеры.
Синтаксис команды Linux FIND(Linux FIND Command Syntax)
Синтаксис относится к тому, как слова или команды объединяются. Точно(Just) так же , как обычное предложение может превратиться в бессмыслицу, если просто перетасовать слова, команды могут дать сбой, если они используются с неправильным синтаксисом.
найти [путь] [условия] [действия](find [path] [conditions] [actions])
Вот что это значит:
find — запускает утилиту Find в (Find)Linux .
путь(path ) - где искать
условия(conditions ) — аргументы, которые вы хотите применить к поиску
действия(actions ) - что вы хотите сделать с результатами
Простой пример с использованием всех трех выглядит так:
найти . -имя файла-sample.rtf -print(find . -name file-sample.rtf -print)
Как вы уже догадались, это найдет файл с именем file-sample.rtf .
Путь с точкой ( . ) указывает find искать в текущем каталоге и во всех каталогах внутри него.
Условие -name сообщает find, что нужно получить файл с этим конкретным именем.
Действие -print указывает FIND показать результаты на экране.
Точка и -print являются значениями по умолчанию для команды find. Так что он все равно будет делать то же самое, если вы их не используете. Итак, find -name file-sample.rtf даст вам те же результаты.
Linux НАЙТИ в другом каталоге(Linux FIND In Another Directory)
Вы можете искать в каталоге, отличном от того, в котором вы находитесь. Просто(Just) вставьте путь к каталогу после FIND . Если вы находитесь в корне и знаете, что файл находится где-то в home/user каталоге, вы должны использовать:
find home/user -name file-sample.rtf
Это по-прежнему рекурсивный поиск, поэтому он будет проходить через каждый каталог под пользователем(user) .
Linux FIND Поиск в нескольких каталогах(Linux FIND Search Multiple Directories)
Если вы хотите искать сразу в нескольких каталогах, просто перечислите их в команде через пробел.
find /lib /var /bin -name file-sample.rtf
Linux FIND без рекурсии или с ограничением рекурсии(Linux FIND with No Recursion or Limiting Recursion)
Если бы вы использовали команду FIND выше на корневом уровне, она просмотрела бы все каталоги в системе. Поэтому, если вы хотите придерживаться только текущего каталога, используйте параметр -maxdepth . Число после -maxdepth говорит Find, насколько глубоко нужно пройти перед остановкой.
Использование -maxdepth 1 означает только этот каталог.
find -name file-sample.rtf -maxdepth 1
Использование -maxdepth 2 или большего числа означает, что нужно пройти на столько же уровней глубже.
найти -maxdepth 5 -имя файла-sample.rtf(find -maxdepth 5 -name file-sample.rtf)
Пример подстановочного знака FIND для Linux(Linux FIND Wildcard Example)
Команда НАЙТИ(FIND) использует звездочку ( * ) в качестве подстановочного знака. Используйте его для любой части имени, в которой вы не уверены. Его можно использовать в имени более одного раза. Если тип файла не является частью имени файла, результаты также будут включать совпадающие каталоги.
find home/user -name file*sample*
Пример Linux FIND по типу(Linux FIND by Type Example)
Чтобы искать только файл или каталог, используйте параметр -type и соответствующий дескриптор. Их несколько, но наиболее распространены файловые и каталоговые:
ф - файл
д – каталог
б – блочное устройство
c - символьное устройство
л – символическая ссылка
с – розетка
find home/user -name file*sample* -type d
Пример Linux FIND без учета регистра(Linux FIND Case Insensitive Example)
В отличие от Windows , Linux заботится о том, является ли буква прописной или строчной. Так что, если вы хотите, чтобы он искал как File-Sample.rtf , так и file-sample.rtf, используйте параметр -iname .
find home/user -iname File-Sample.rtf
Пример поиска нескольких файлов в Linux(Linux FIND Several Files Example)
Допустим, вы хотели найти версии файла в форматах .rtf и .html. Это можно сделать одной командой с помощью оператора -o (или). (-o)В некоторых дистрибутивах вам может потребоваться поместить имена в скобки, например ( -name file-sample.rtf -o -name file-sample.html ) .
find home/user -name file-sample.rtf -o -name file-sample.html
Linux FIND файлы, имена которых не совпадают(Linux FIND Files That Don’t Match a Name)
Возможно, вы знаете, что существует версия файла .html , но не знаете, есть ли другие. Вы можете отфильтровать версию .html из поиска, используя опцию -not .
find home/user -name file-sample* -not -name *.html
Linux FIND без ошибок(Linux FIND Without Error Results)
Обратите внимание, что в примере с поиском без рекурсии перечислены все каталоги, в которых поиск невозможен, и правильный результат. Это раздражает. Давайте не будем показывать все эти каталоги(Permission) с отказом в доступе. Объедините его с другой командой терминала Linux(Linux terminal command) , grep. Вы также можете использовать Find с grep для поиска файлов с определенными словами в них(find files with specific words in them) .
find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”
Давайте разберем 2>&1 .
2 — представляет stderr , сокращение от стандартного вывода ошибок.
1 - представляет стандартный вывод(stdout) , который является сокращением от стандартного вывода.
> — означает перенаправить любой вывод слева от него на то, что находится справа от него.
& – означает собрать.
Итак , 2>&1 означает взять стандартные ошибки и перенаправить их, а затем объединить их со стандартным выводом в один вывод.
Теперь давайте посмотрим на | grep -v “Permission denied” .
| (называемый каналом) — указывает Linux передавать результаты того, что находится слева от него, тому, что находится справа от него. Он передается команде grep.
grep — утилита для текстового поиска.
-v — указывает grep искать все, что не совпадает с текстом слева от -v. В этом случае он говорит grep находить только то, что не содержит текста или строки « Отказано(Permission) в доступе ». Таким образом, grep покажет вам только те результаты, которые вы ищете, и любые ошибки, которые не соответствуют « Отказано(Permission) в доступе ».
Пример Linux FIND по разрешениям(Linux FIND by Permissions Example)
Чтобы использовать это хорошо, вам нужно изучить разрешения Linux(learn Linux permissions) .
Все файлы примеров имеют разрешения 664, кроме одного с разрешениями 775. Используйте параметр -perm , чтобы найти его.
find Documents/ -name file-sample* -type f -perm 775
Пример Linux FIND по размеру(Linux FIND by Size Example)
Поиск файлов по размеру удобен для того, чтобы эти огромные файлы заполнили ваш жесткий диск. Используйте параметр -size, нужный размер и один из следующих суффиксов. Если суффикс не используется, -size по умолчанию принимает значение b . Чтобы найти файлы, равные или превышающие определенный размер, поставьте знак плюс (+) перед размером.
М - Мегабайты
Г – гигабайты
к - килобайты
б — блоки (512 байт — по умолчанию)
в - байты
w – слова (два байта вместе)
find -size +500k
Linux НАЙТИ по владельцу(Linux FIND by Owner)
Есть два способа найти файлы по владельцу. Один — по имени пользователя владельца, а другой — по группе пользователя. Чтобы найти по имени пользователя, используйте параметр -user , за которым следует имя пользователя. Чтобы выполнить поиск по группе пользователей, используйте -group , за которой следует имя группы.
найти -user(find -user groupname ) имя группы или найти -user имя пользователя(find -user username)
Linux FIND Files по последнему измененному примеру(Linux FIND Files by Last Modified Example)
Чтобы найти файлы, которые были изменены или отредактированы за последние X дней, используйте -mtime , за которым следует число. Поставив знак минус ( - ) перед числом, вы найдете все, что было изменено в течение этого количества дней до настоящего момента. Знак плюс ( + ) означает, что в течение этого количества дней до настоящего времени.
find -name “file-sample*” -mtime +5 (greater than 5 days ago)
find -name “file-sample*” -mtime -5 (less than 5 days ago)
Чтобы найти по последнему изменению в минутах, используйте параметр -mmin, за которым следует количество минут. Используйте + и – как указано выше.
find -name “file-sample*” -mmin -5
find -name “file-sample*” -mmin +5
Пример поиска файлов Linux по времени последнего доступа(Linux FIND Files by Last Accessed TIme Example)
Для поиска файлов по дате их последнего открытия используется параметр -atime для дней и -amin для минут. Следуйте за ним, указав количество дней или минут, чтобы вернуться назад, и используйте знак + и - как больше или меньше.
find -name “file-sample*” -atime -5
find -name “file-sample* -amin -5
Объедините ПОИСК с другими командами Linux(Combine FIND with Other Linux Commands)
Выше приведен один пример использования find с командой grep, и вы можете использовать его со многими другими. Вы можете видеть, что использование find и других команд может быть очень мощным и значительно сэкономить время. Представьте(Imagine) , что вам нужно удалить кучу файлов определенного типа. Вместо того, чтобы искать в проводнике, просто создайте правильную команду, и это будет сделано за считанные секунды. Как вы теперь будете использовать команду find?
Related posts
Преобразование изображений между форматами через командную строку в Ubuntu
Почему команда «меньше» лучше, чем «больше» в UNIX и Linux
Используйте команду Linux «dd» с простым графическим интерфейсом
Найдите и измените свое имя хоста в Ubuntu
Команда Chown в Linux: как ее использовать
Команда Linux Ifconfig: как ее использовать
5 лучших дистрибутивов Linux, которые вы должны использовать
Как перейти на последнюю версию Ubuntu
Как установить практически любой принтер на Ubuntu
Выключите и перезагрузите компьютер из терминала Ubuntu
10 сочетаний клавиш Ubuntu для ускорения вашего рабочего процесса
9 полезных вещей, которые может сделать Linux, но не может Windows
Создайте собственный дистрибутив Live Linux с помощью Linux Live Kit
Принудительно закрыть программу в Ubuntu
5 веских причин отказаться от Windows в пользу Linux
Создавайте и редактируйте Zip-файлы в Linux с помощью терминала
Показать и скрыть значки рабочего стола в GNOME Linux
Как установить и запустить приложения Linux на Chromebook
9 лучших дистрибутивов Linux для взлома
Понимание разрешений Linux и использования chmod