Введение
В этой статье мы увидим, как искать определенные файлы или каталоги в нашей файловой системе. В Linux есть несколько команд для поиска файлов.
Найдите файл с помощью команды locate
Одной из наиболее часто используемых команд для поиска файлов или каталогов является команда locate, которая выполняет поиск по имени файла. Вы должны увидеть список файлов и каталогов, которые содержат искомое слово в своем имени и пути:
locate nomefile
Команда locate не выполняет поиск в реальном времени среди файлов в системе, а выполняет поиск в базе данных, содержащей информацию о файлах, присутствующих в системе. Поэтому вам нужно часто обновлять эту базу данных, используя следующую команду:
updatedb
Найдите файл с помощью команды find
Еще одна полезная команда — find, которая позволяет нам искать файлы и каталоги по имени, дате создания или размеру. Для поиска файла в системе используйте команду find. Пример поиска файла в системе, из терминала:
find /home/user -type f
Эта команда будет искать все файлы, расположенные в /home/user. Команда find чрезвычайно эффективна и может быть настроена с помощью ряда команд, чтобы сделать поиск еще более подробным.
Для поиска во всей системе определенного файла:
find /-name nomefile.txt
Для поиска по дате создания файла используйте параметр -ctime, за которым следует возраст (в днях) искомого файла. Например, чтобы найти файл, созданный 6 дней назад, по определенному пути:
find /var/www/html -ctime 7
Если вы хотите искать файлы больше определенного размера, вы можете использовать:
find. -type f -size 10M
Приведенная выше команда будет искать в текущем каталоге все файлы размером более 10 МБ. Убедитесь, что вы не запускаете команду из корневого каталога вашей системы Linux, так как это может привести к высокому системному вводу-выводу.
Одной из наиболее часто используемых комбинаций является опция « exec », которая позволяет выполнять некоторые действия с результатами команды find.
Например, если мы хотим найти все файлы в каталоге и изменить их разрешения. Это можно сделать с помощью:
find /home/user/files/-type f -exec chmod 644 {} \;
Приведенная выше команда будет рекурсивно искать все файлы в указанном каталоге и выполнять команду chmod для найденных файлов.
Найдите файл с помощью команды grep
С помощью grep вы можете искать файлы, содержащие определенное слово или определенную текстовую строку:
grep index *.html
Благодаря такому синтаксису строка « index » будет искаться среди всех файлов .html (звездочка означает «что угодно» и используется в этом примере для поиска любых файлов с расширением .html ).
В результате поиска у нас тоже будет все между словом index и .html.
Чтобы в результате получить только конкретное слово, используйте параметр -w:
grep -w "index" *.html