З терміналом: Приклади з командою Знайти

Ось кілька прикладів, якими ми можемо скористатися, коли використовуємо знайти, команда для пошуку файлів або папок.

Щоб отримати допомогу щодо запуску команди:

man find

щоб залишити інструкцію, просто натисніть клавішу [Q] (діє для будь-якого посібника).

У наступних прикладах крапка (.) Після пошуку (знайти.) Означає, що ми шукаємо в папці, вказаній підказкою. Його можна замінити будь-яким дійсним шляхом, наприклад / 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


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

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

    видалити всі файли, крім .txt (очевидно, що .txt може бути що завгодно)
    знайти. ! -назву "* .txt" -exec rm {} \;

    пошук без збігів регістру:
    знайти. -інам «* foobar *»

    Примітка: Команда -exec не може бути виконана з параметром -iname.

  2.   тарегон - сказав він

    Відмінно 😉 ця команда повинна бути обов’язковою, щоб знати, перш ніж мене лякали варіанти, які існують у «людині», щоб мати можливість здійснювати пошук, але, даючи їй можливість, я міг переконатись, наскільки вона потужна, коли йдеться про те, що я забув на моєму жорсткому диску 😐

  3.   Хьюго - сказав він

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

    Ще одне з моїх бажаних застосувань для команди find - це рекурсивна зміна дозволів:


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

  4.   електрон222 - сказав він

    Цікаво ^ _ ^

    1.    KZKG ^ Гаара - сказав він

      Як круто виглядає значок Чакри ха-ха-ха-ха-ха 😀

      1.    sieg84 - сказав він

        Магейя зник 🙂

        1.    KZKG ^ Гаара - сказав він

          Ага, правильно 😀
          Зараз я базуюся на цьому хе-хе-хе. Дякую 🙂

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

            І один для мого дистрибутиву ...

  5.   Археро - сказав він

    Дякую, команди дуже корисні, я маю сумніви, пам’ятаю, що в Ubuntu я колись використовував команду locate, це якийсь псевдонім find чи ...?

    1.    Хьюго - сказав він

      Негативний розмістити, містити y розкошувати - це інші команди пошуку, які на відміну від знаходити, вони використовують базу даних, яку потрібно періодично оновлювати за допомогою команди оновленоb.

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

      1.    Археро - сказав він

        Щиро дякую, Гюго, чудове пояснення, я можу сказати лише, наскільки потужний термінал у gnu / linux!

  6.   Сандра - сказав він

    Привіт, я бачу, що це стара тема, але, сподіваюся, ви все одно можете мені допомогти.

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

    1.    KZKG ^ Гаара - сказав він

      Який повний рядок ви ставите?

      Щоб перевірити і побачити, чи знайду я рішення.

      З іншого боку, у будь-якому випадку, якщо ви хочете, ви можете перевірити тут: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   Естефані - сказав він

    Будь ласка, допоможіть мені, я хочу скопіювати файли, які закінчуються на * _ZFIR0069.TXT, в інший шлях, і додати дату в кінці, я виконую команду:

    дата = $ (дата + »% 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.   pepG - сказав він

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

  9.   кайке - сказав він

    Як я можу знайти файли, які закінчуються цифрами? Дякую