- Linux и Windows: помощь админам и пользователям
- Администрируем и настраиваем Windows, Linux.
- 5 способов поиска файлов в Linux, используя терминал.
- Как найти файлы в Linux с помощью командной строки
- How to Find Files in Linux Using the Command Line
- Вы можете использовать find команду для поиска файлов и каталогов на основе их прав доступа, типа, даты, владельца, размера и т. Д. Его также можно использовать в сочетании с другими инструментами, такими как grep или sed.
- Синтаксис команды find Linux
- Найти файлы по имени
- Найти файлы по расширению
- Поиск файлов по типу
- Найти файлы по размеру
- Поиск файлов по дате изменения
- Найти файлы по разрешениям
- Найти файлы по владельцу
- Найти и удалить файлы
- Вывод
- Найти команду в Linux (поиск файлов и каталогов)
- find командный синтаксис
- Найти файлы по имени
- Найти файлы по расширению
- Найти файлы по типу
- Найти файлы по размеру
- Найти файлы по дате изменения
- Найти файлы по разрешениям
- Найти файлы по владельцу
- Найти и удалить файлы
- Выводы
Linux и Windows: помощь админам и пользователям
Администрируем и настраиваем Windows, Linux.
5 способов поиска файлов в Linux, используя терминал.
Сегодня мы рассмотрим нескольно наиболее популярных способов поиска файлов в Linux, используя терминал.
1) find : Для поиска файлов из командной строки вы можете использовать команду “find”. У этой команды следующий синтаксис:
find path criteria action
“path” — Секция для указания директории поиска. Если ничего не указано поиск идет по текущей директории.
“criteria” — Опции поиска.
“action” —Опции, которые влияют на состояние поиска или контролируют его, например,
2) locate : Команда “locate” это альтернатива команде “find -name”. Команда find ищет файлы в выбранной части файловой системы и процесс может быть не очень быстрым. С другой стороны, команда locate ищет файлы в базе данный, созданной специально для этих целей /var/lib/locatedb, что происходит намного быстрее. Для обновления базы используется команда updatedb.
3) whereis : “whereis” возвращает место расположения кода (опция -b), ман-страниц (опция -m), и исходные файлы (опция -s) для указанной команды. Если опции не указываются, выводится вся доступная информация. Эта команда быстрее чем “find” но менее полная.
4) which : Команда “which” ищет все пути перечисленные в переменной PATH для указанной команды.
5) type :
При вызове без опций показывает, как имена будут интерпретироваться
при использовании в качестве имени команды. Если использована опция -a, команда type выдает список всех каталогов, где есть выполняемый файл с
соответствующим именем. В список включаются также псевдонимы и функции,
если только не указана опция -p. К
хэшу команд не обращаются, если указана опция -a. Команда type возвращает 0,
если хоть один из аргументов найден, и 1 в противном случае.
Explo.ru — все про туризм и отдых: горящие туры и путевки в Турцию, Египет, отзывы туристов, фото красивых мест планеты. Напиши свой отзыв о курорте, стране или отеле в котором ты был!
Если вам светит свадьба, не расстраивайтесь Свадебный портал поможет вам понять, как организовать и провести свадьбу на высшем уровне.
Источник
Как найти файлы в Linux с помощью командной строки
How to Find Files in Linux Using the Command Line
Вы можете использовать find команду для поиска файлов и каталогов на основе их прав доступа, типа, даты, владельца, размера и т. Д. Его также можно использовать в сочетании с другими инструментами, такими как grep или sed.
Команда find является одним из самых мощных инструментов в арсенале системных администраторов Linux. Он ищет файлы и каталоги в иерархии каталогов на основе заданного пользователем выражения и может выполнять заданные пользователем действия для каждого соответствующего файла.
Синтаксис команды find Linux
Общий синтаксис find команды выглядит следующим образом:
- В options контроле атрибутов Обработка символических ссылок, параметры отладки и метод оптимизации.
- path. Атрибут определяет начальный каталог или каталоги , где найти будет искать файлы.
- expression Атрибут состоит из опций, шаблонов поиска, а также действия , разделенные операторами.
Для поиска файлов в каталоге пользователь, вызывающий find команду, должен иметь разрешения на чтение для этого каталога.
Давайте посмотрим на следующий пример:
- Опция -L (options) указывает find команде следовать символическим ссылкам.
- /var/www (путь . ) определяет каталог , который будет производиться поиск.
- Выражение) -name «*.js сообщает find поисковым файлам, заканчивающимся .js (JavaScript-файлы).
Найти файлы по имени
Поиск файлов по имени, вероятно, является наиболее распространенным использованием find команды. Чтобы найти файл по имени, используйте -name опцию после имени файла, который вы ищете.
Например, для поиска файла с именем document.pdf в /home/baks каталоге вы должны использовать следующую команду:
Чтобы запустить поиск без учета регистра, измените -name параметр с помощью -iname :
Команда выше будет соответствовать «Document.pdf», «DOCUMENT.pdf» ..etc.
Найти файлы по расширению
Поиск файлов по расширению аналогичен поиску файлов по имени. Например, чтобы найти все файлы, заканчивающиеся .log.gz внутри /var/log/nginx каталога, вы можете использовать:
Важно отметить, что когда вы используете подстановочный знак, вы должны либо заключить шаблон в кавычки, либо экранировать * символ звездочки с помощью обратной косой черты, \ чтобы она не интерпретировалась оболочкой.
Чтобы найти все файлы, которые не соответствуют регулярному выражению, *.log.gz вы можете использовать -not опцию. Например, чтобы найти все файлы, которые не заканчиваются на *.log.gz вас, используйте:
Поиск файлов по типу
Иногда вам может потребоваться поиск файлов определенного типа, таких как обычные файлы, каталоги или символические ссылки. В Linux все это файл.
Для поиска файлов по их типу используйте -type опцию и один из следующих дескрипторов, чтобы указать тип файла:
- f : обычный файл
- d : каталог
- l : символическая ссылка
- c : символьные устройства
- b : блочные устройства
- p : FIFO
- s : разъем
Например, чтобы найти все каталоги в текущем рабочем каталоге , вы должны использовать:
Распространенным примером может быть рекурсивное изменение разрешений на доступ к файлам на веб-сайте 644 и на 755 использование каталогов с помощью chmod команды
Найти файлы по размеру
Чтобы найти файлы по размеру файла, передайте -size параметр вместе с критериями размера. Вы можете использовать следующие суффиксы, чтобы указать размер файла:
- b : 512-байтовые блоки (по умолчанию)
- c : байты
- w : двухбайтовые слова
- k : Килобайты
- M : Мегабайт
- G : Гигабайты
Следующая команда найдет все файлы с точно 1024 байтами внутри /tmp каталога:
Команда find также позволяет вам искать файлы, которые больше или меньше указанного размера.
В следующем примере мы ищем все файлы меньше, чем 1MB внутри текущего рабочего каталога. Обратите внимание на — символ минус перед значением размера:
Если вы хотите искать файлы с размером больше чем 1MB , вам нужно использовать + символ плюс :
Вы даже можете искать файлы в диапазоне размеров. Следующая команда найдет все файлы между 1 и 2MB :
Поиск файлов по дате изменения
find также может искать файлы на основе их последнего изменения, доступа или изменения времени.
То же, что и при поиске по размеру, используйте символы «плюс» и «минус» для «больше чем» или «меньше чем».
Допустим, несколько дней назад вы изменили один из файлов конфигурации dovecot, но забыли, какой именно. Вы можете легко отфильтровать все файлы в /etc/dovecot/conf.d каталоге, который заканчивается .conf и был изменен за последние пять дней с помощью:
Вот еще один пример фильтрации файлов по дате изменения с использованием этой -daystart опции. Команда ниже выведет список всех файлов в /home каталоге, которые были изменены 30 или несколько дней назад:
Найти файлы по разрешениям
-perm Опция позволяет искать файлы на основе прав доступа к файлам.
Например, чтобы найти все файлы с разрешениями именно 775 внутри /var/www/html каталога, вы должны использовать:
Вы можете использовать префикс числового режима с минусом — или косой чертой / .
Если / в качестве префикса используется косая черта , то по крайней мере одна категория (пользователь, группа или другие) должна иметь как минимум соответствующие биты, установленные для сопоставления файла.
Рассмотрим следующий пример команды:
Приведенная выше команда сопоставит все файлы с правами на чтение, установленными для пользователя, группы или других пользователей.
Если — в качестве префикса используется минус, то для совпадения файла должны быть установлены хотя бы указанные биты. Следующая команда будет искать файлы, которые имеют права на чтение и запись для владельца и группы и доступны для чтения другим пользователям:
Найти файлы по владельцу
Чтобы найти файлы, принадлежащие конкретному пользователю или группе, используйте параметры -user и -group .
Например, для поиска всех файлов и каталогов, принадлежащих пользователю baks , вы должны выполнить:
Вот пример из реальной жизни. Допустим, вы хотите найти все файлы , принадлежащие пользователю www-data и изменить владельца совпавших файлов из www-data к nginx :
Найти и удалить файлы
Чтобы удалить все соответствующие файлы, добавьте -delete опцию в конец выражения соответствия.
Убедитесь, что вы используете эту опцию, только если вы уверены, что результат соответствует файлам, которые вы хотите удалить. Рекомендуется распечатать соответствующие файлы перед использованием -delete параметра.
Например, чтобы удалить все файлы, заканчивающиеся на .temp из, /var/log/ вы должны использовать:
Когда дело доходит до каталогов, find можно удалить только пустые каталоги так же, как rmdir .
Вывод
Мы показали вам, как использовать find команду с различными параметрами и критериями.
Эта статья должна дать вам фундаментальное понимание того, как найти файлы в ваших системах Linux. Вы также можете посетить find страницу руководства и прочитать обо всех других мощных опциях find команды.
Источник
Найти команду в Linux (поиск файлов и каталогов)
Команда find — один из самых мощных инструментов в арсенале системных администраторов Linux. Он ищет файлы и каталоги в иерархии каталогов на основе заданного пользователем выражения и может выполнять указанное пользователем действие для каждого совпадающего файла.
Вы можете использовать команду find для поиска файлов и каталогов на основе их разрешений, типа, даты, владельца, размера и т. Д. Его также можно комбинировать с другими инструментами, такими как grep или sed .
find командный синтаксис
Общий синтаксис команды find следующий:
- Атрибут options управляет обработкой символических ссылок, параметрами отладки и методом оптимизации.
- Атрибут path. определяет начальный каталог или каталоги, в которых find будет искать файлы.
- Атрибут expression состоит из параметров, шаблонов поиска и действий, разделенных операторами.
Для поиска файлов в каталоге пользователь, вызывающий команду find должен иметь разрешения на чтение в этом каталоге.
Давайте посмотрим на следующий пример:
- Параметр -L (параметры) указывает команде find переходить по символическим ссылкам.
- /var/www (путь…) указывает каталог, в котором будет производиться поиск.
- (Выражение) -name «*.js указывает find искать файлы, заканчивающиеся на .js (файлы JavaScript).
Найти файлы по имени
Поиск файлов по имени, вероятно, является наиболее частым применением команды find . Чтобы найти файл по имени, используйте параметр -name за которым следует имя файла, который вы ищете.
Например, чтобы найти файл с именем document.pdf в каталоге /home/linuxize , вы должны использовать следующую команду:
Чтобы запустить поиск без -iname регистра, измените параметр -name на -iname :
Приведенная выше команда будет соответствовать «Document.pdf», «DOCUMENT.pdf» и т. Д.
Найти файлы по расширению
Поиск файлов по расширению аналогичен поиску файлов по имени. Например, чтобы найти все файлы, заканчивающиеся на .log.gz внутри .log.gz /var/log/nginx , вы должны ввести:
Важно отметить, что вы должны либо заключить шаблон в кавычки, либо экранировать символ звездочки * обратной косой чертой чтобы он не интерпретировался оболочкой при использовании подстановочного знака.
Чтобы найти все файлы , которые не соответствуют регулярному выражению *.log.gz вы можете использовать -not вариант. Например, чтобы найти все файлы, которые не заканчиваются на *.log.gz вы должны использовать:
Найти файлы по типу
Иногда вам может потребоваться поиск определенных типов файлов, таких как обычные файлы, каталоги или символические ссылки. В Linux все является файлом.
Для поиска файлов по их типу используйте параметр -type и один из следующих дескрипторов, чтобы указать тип файла:
- f : обычный файл
- d : каталог
- l : символическая ссылка
- c : символьные устройства
- b : блочные устройства
- p : именованный канал (FIFO)
- s : сокет
Например, чтобы найти все каталоги в текущем рабочем каталоге , вы должны использовать:
Типичным примером может быть рекурсивное изменение разрешений файлов веб-сайтов на 644 и разрешений каталогов на 755 с помощью команды chmod :
Найти файлы по размеру
Чтобы найти файлы по размеру файла, передайте параметр -size вместе с критериями размера. Вы можете использовать следующие суффиксы, чтобы указать размер файла:
- b : блоки по 512 байт (по умолчанию)
- c : байты
- w : двухбайтовые слова
- k : килобайты
- M : мегабайты
- G : гигабайты
Следующая команда найдет все файлы размером ровно 1024 байта внутри каталога /tmp :
Команда find также позволяет вам искать файлы, которые больше или меньше указанного размера.
В следующем примере мы ищем все файлы 1MB менее 1 1MB внутри текущего рабочего каталога. Обратите внимание на минус — символ перед значением размера:
Если вы хотите искать файлы размером более 1 1MB , вам нужно использовать символ плюс + :
Вы даже можете искать файлы в пределах диапазона размеров. Следующая команда найдет все файлы 2MB от 1 до 2MB :
Найти файлы по дате изменения
Команда find также может искать файлы на основе их последнего изменения, доступа или времени изменения.
То же, что и при поиске по размеру, используйте символы плюс и минус для «больше чем» или «меньше чем».
Допустим, несколько дней назад вы изменили один из файлов конфигурации dovecot, но забыли, какой именно. Вы можете легко отфильтровать все файлы в /etc/dovecot/conf.d который заканчивается на .conf и был изменен за последние пять дней:
Вот еще один пример фильтрации файлов по дате модификации с использованием опции -daystart . Приведенная ниже команда перечислит все файлы в каталоге /home которые были изменены 30 или более дней назад:
Найти файлы по разрешениям
Параметр -perm позволяет вам искать файлы на основе прав доступа к файлам.
Например, чтобы найти все файлы с разрешениями ровно 775 внутри каталога /var/www/html , вы должны использовать:
Вы можете поставить перед числовым режимом знак минус — или косую черту / .
Когда в качестве префикса используется косая черта / , то по крайней мере одна категория (пользователь, группа или другие) должна иметь по крайней мере соответствующие биты, установленные для соответствия файлу.
Рассмотрим следующий пример команды:
Приведенная выше команда будет соответствовать всем файлам с разрешениями на чтение, установленными для пользователя, группы или других.
Если в качестве префикса используется минус — , то для соответствия файла необходимо установить хотя бы указанные биты. Следующая команда будет искать файлы, которые имеют права на чтение и запись для владельца и группы и доступны для чтения другим пользователям:
Найти файлы по владельцу
Чтобы найти файлы, принадлежащие определенному пользователю или группе, используйте параметры -user и -group .
Например, чтобы найти все файлы и каталоги, принадлежащие пользователю linuxize , вы должны запустить:
Вот реальный пример. Допустим, вы хотите найти все файлы, принадлежащие пользователю www-data и изменить владельца совпадающих файлов с www-data на nginx :
Найти и удалить файлы
Чтобы удалить все совпадающие файлы, добавьте параметр -delete в конец выражения соответствия.
Убедитесь, что вы используете эту опцию, только если уверены, что результат соответствует файлам, которые вы хотите удалить. Перед использованием опции -delete всегда рекомендуется распечатать совпадающие файлы.
Например, чтобы удалить все файлы, заканчивающиеся на .temp из /var/log/ , вы должны использовать:
Когда дело доходит до каталогов, find может удалять только пустые каталоги, как и rmdir .
Выводы
Мы показали вам, как использовать команду find с различными параметрами и критериями.
Эта статья должна дать вам фундаментальное представление о том, как находить файлы в ваших системах Linux. Вы также можете посетить страницу руководства find и прочитать обо всех других мощных параметрах команды find .
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник