Вот несколько примеров, которыми мы можем воспользоваться, когда будем использовать Найдите, команда для поиска файлов или папок.
Чтобы получить справку по запуску команды:
man find
чтобы выйти из руководства, просто нажмите кнопку [Q] (действительно для любого руководства).
В следующих примерах точка (.) После поиска (find.) Означает, что мы ищем папку, указанную в приглашении. Его можно заменить на любой допустимый путь, например / home /.
Примеры:
Просто ищите файлы с рисунком.
find . -type f -name "*.deb"
найти и скопировать в / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Найдите файлы Thumbs.db и удалите их.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Создайте чистый текстовый файл с файлами md5 в каталоге.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Удалите надоедливые папки .svn.
find | grep "\.svn$" | xargs rm -fr
Замените один текст другим.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Найдите файлы, обновленные день назад.
find /var/log/[a-z]* \*.sql -mtime +1
Чтобы сгенерировать файлы md5sums пакетов DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
удалите все файлы, кроме .txt (очевидно, что .txt может быть любым)
находить. ! -name "* .txt" -exec rm {} \;
поиск без совпадений с учетом регистра:
находить. -iname «* foobar *»
Примечание: команду -exec нельзя запустить с параметром -iname.
Отлично 😉 эта команда должна быть обязательной, чтобы знать, прежде чем я был напуган параметрами, которые существовали в 'man', чтобы иметь возможность выполнять поиск, но, дав ему возможность, я мог увидеть, насколько она эффективна, когда дело доходит до поиска того, что я забыл на моем жестком диске 😐
Поиск, безусловно, полезен, особенно для работы с именами файлов, содержащими пробелы и другие необычные символы. Например, я помню, как однажды я не мог сжать набор каталогов, пока мне не пришло в голову использовать find с xargs (что, кстати, намного быстрее, чем -exec), и проблема не была решена.
Еще одно из моих предпочтительных вариантов использования команды find - рекурсивное изменение разрешений:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Интересно ^ _ ^
Как круто выглядит иконка Чакра хахахахахаха 😀
Магея пропала 🙂
Ага, верно 😀
Прямо сейчас я основываюсь на этом хехехехе. Спасибо 🙂
И еще один для моего дистрибутива ...
Спасибо, команды очень полезны, я сомневаюсь, что помню, что в Ubuntu я когда-то использовал команду locate, это какой-то псевдоним find или ...
Negative. разместить, определить местонахождение y размещать другие команды поиска, которые в отличие от найдите, они используют базу данных, которую необходимо периодически обновлять с помощью команды обновленоb.
Оба типа команд имеют свое применение. Я, например, обычно использую обновленоb с последующим определить местонахождениенайти, когда я действительно хочу найти что-то быстрое в каталоге с большим количеством данных, которые, как я знаю, не обновляются слишком часто (например, пакет в репозитории), и найдите когда я хочу сделать что-то более сложное, например объединить результаты поиска с другой командой, или когда я просто не хочу создавать базу данных, потому что я знаю, что каталог, в котором я собираюсь искать, не содержит слишком много информации.
Большое спасибо Хьюго, отличное объяснение, я могу только сказать, насколько мощный терминал в gnu / linux!
Привет, я вижу, что это старая тема, но, надеюсь, вы все еще можете мне помочь.
Я учусь использовать регулярное выражение, так как я видел документ, и я ищу слова ошибка или сбой и его производные ошибки или сбой или сбой и т.д., и мое регулярное выражение:
: / \ (. * \ (ошибка | сбой \). * \) /
При выполнении он сообщает мне, что совпадений нет 🙁 кроме
:/\(.*\(ошибка\).*\)/
o
: / \ (. * \ (потерпеть поражение \). * \) /
Если найдешь совпадения, скажи, в чем я ошибаюсь?
Какую полную строку вы ставите?
Чтобы проверить и посмотреть, найду ли я решение.
С другой стороны, в любом случае, вы можете проверить здесь: https://blog.desdelinux.net/?s=expresiones+regulares
Пожалуйста, помогите мне, я хочу скопировать файлы, заканчивающиеся на * _ZFIR0069.TXT, на другой путь и добавить дату в конец, я выполняю команду:
date = $ (дата + »% Y% m% d%»)
find / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Но результат такой:
{} _20160225% -> но он копирует только один файл из всех, и он переименовывается таким образом
Я хочу, чтобы он скопировал все файлы и имел этот формат * _ZFIR0069_ $ date .TXT
Привет.
В чем разница между find * -type d и find / home / pepe -type d? Я хочу перечислить каталоги своей учетной записи, и я не понимаю, почему первый делает это правильно, а второй - нет. помочь
Как мне найти файлы, которые заканчиваются цифрами? Спасибо