Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>shell find commands bin}} ====== Поиск файлов с реальном сканированием. ====== Команда find выполняет просмотр файловой системы для поиска файла, что делает этот инструмент медленным, но эффективным. Для поиска по имени обязательно нужно указывать ключ -name Пример: find -name filename.txt По умолчанию find производит поиск рекурсивно в текущем каталоге. ===== type / типы ===== * -type f * -type d ===== Параметры ===== * В параметре поставляет найденные значения -exec <code>{}</code> * Пример: <code>find ./ -name "*.php" -exec rm {} \;</code> ====== Смена кодировки у множества файлов ====== for i in *; do iconv -f windows-1251 -t utf-8 "$i" >tmp; mv tmp "$i"; done find . \( -name '*.php' -o -name '*.inc' \) -print or find . -name '*.php' -o -name '*.inc' find . -name "*.php" | while read i; do iconv -f windows-1251 -t utf-8 "$i" >tmp; mv tmp "$i"; done find . -name "*.php" -o -name "*.inc" -o -name "*.module" | while read i; do iconv -f windows-1251 -t utf-8 "$i" >tmp; mv tmp "$i"; done ====== Смена прав у файлов и каталогов ====== ===== Смена прав у каталогов ===== find . -type d -exec chmod 755 {} \; Эта команда рекурсивно пройдется по текущему (точка ".") каталогу и всем его подкаталогам и изменит права на 755 только у каталогов (-type d) find . -type f -exec chmod 644 {} \; всем файлам - 644 ===== Смена прав у файлов ===== find . -type f -name '*.htm*' -exec chmod 644 {} \; Определенным файлам ====== Рекурсивное удаление по маске ====== Пример рекурсивного удаления всех git репозиториев find . -type d -name '.git' -exec rm -R -f {} \; ====== Поиск необходимого контента в файлах ====== find ./ -type f -print -name *.php -exec grep 'eval' --color=auto {} \; Поиск бэкдоров или вирусов на сайте ====== Вычислить размер папки, без подпапок ====== find . -maxdepth 0 -type d -mindepth 0 -exec du -hs {} \; ====== Удалить большое количество файлов ====== Иногда при удление файлов командой rm, возникает сообщение об ошибке "/bin/rm: Argument list too long." Ниже след команда позволит ее избежать find . -name "thumb_*" -print | xargs rmСохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal