С терминалом: примеры с командой поиска

Вот несколько примеров, которыми мы можем воспользоваться, когда будем использовать Найдите, команда для поиска файлов или папок.

Чтобы получить справку по запуску команды:

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


16 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   правильный сказал

    удалите все файлы, кроме .txt (очевидно, что .txt может быть любым)
    находить. ! -name "* .txt" -exec rm {} \;

    поиск без совпадений с учетом регистра:
    находить. -iname «* foobar *»

    Примечание: команду -exec нельзя запустить с параметром -iname.

  2.   тарегон сказал

    Отлично 😉 эта команда должна быть обязательной, чтобы знать, прежде чем я был напуган параметрами, которые существовали в 'man', чтобы иметь возможность выполнять поиск, но, дав ему возможность, я мог увидеть, насколько она эффективна, когда дело доходит до поиска того, что я забыл на моем жестком диске 😐

  3.   Хьюго сказал

    Поиск, безусловно, полезен, особенно для работы с именами файлов, содержащими пробелы и другие необычные символы. Например, я помню, как однажды я не мог сжать набор каталогов, пока мне не пришло в голову использовать find с xargs (что, кстати, намного быстрее, чем -exec), и проблема не была решена.

    Еще одно из моих предпочтительных вариантов использования команды find - рекурсивное изменение разрешений:


    find . -type d -print0 | xargs -0 chmod 755
    find . -type f -print0 | xargs -0 chmod 644

  4.   электрон222 сказал

    Интересно ^ _ ^

    1.    КЗКГ ^ Гаара сказал

      Как круто выглядит иконка Чакра хахахахахаха 😀

      1.    Зиг84 сказал

        Магея пропала 🙂

        1.    КЗКГ ^ Гаара сказал

          Ага, верно 😀
          Прямо сейчас я основываюсь на этом хехехехе. Спасибо 🙂

          1.    лестерцона сказал

            И еще один для моего дистрибутива ...

  5.   стрельба из лука сказал

    Спасибо, команды очень полезны, я сомневаюсь, что помню, что в Ubuntu я когда-то использовал команду locate, это какой-то псевдоним find или ...

    1.    Хьюго сказал

      Negative. разместить, определить местонахождение y размещать другие команды поиска, которые в отличие от найдите, они используют базу данных, которую необходимо периодически обновлять с помощью команды обновленоb.

      Оба типа команд имеют свое применение. Я, например, обычно использую обновленоb с последующим определить местонахождениенайти, когда я действительно хочу найти что-то быстрое в каталоге с большим количеством данных, которые, как я знаю, не обновляются слишком часто (например, пакет в репозитории), и найдите когда я хочу сделать что-то более сложное, например объединить результаты поиска с другой командой, или когда я просто не хочу создавать базу данных, потому что я знаю, что каталог, в котором я собираюсь искать, не содержит слишком много информации.

      1.    стрельба из лука сказал

        Большое спасибо Хьюго, отличное объяснение, я могу только сказать, насколько мощный терминал в gnu / linux!

  6.   Сандры сказал

    Привет, я вижу, что это старая тема, но, надеюсь, вы все еще можете мне помочь.

    Я учусь использовать регулярное выражение, так как я видел документ, и я ищу слова ошибка или сбой и его производные ошибки или сбой или сбой и т.д., и мое регулярное выражение:
    : / \ (. * \ (ошибка | сбой \). * \) /
    При выполнении он сообщает мне, что совпадений нет 🙁 кроме
    :/\(.*\(ошибка\).*\)/
    o
    : / \ (. * \ (потерпеть поражение \). * \) /
    Если найдешь совпадения, скажи, в чем я ошибаюсь?

    1.    КЗКГ ^ Гаара сказал

      Какую полную строку вы ставите?

      Чтобы проверить и посмотреть, найду ли я решение.

      С другой стороны, в любом случае, вы можете проверить здесь: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   Эстефани сказал

    Пожалуйста, помогите мне, я хочу скопировать файлы, заканчивающиеся на * _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

    Привет.

  8.   бодрость духа сказал

    В чем разница между find * -type d и find / home / pepe -type d? Я хочу перечислить каталоги своей учетной записи, и я не понимаю, почему первый делает это правильно, а второй - нет. помочь

  9.   Кайке сказал

    Как мне найти файлы, которые заканчиваются цифрами? Спасибо