С терминала: Примери с командата Find

Ето няколко примера, от които можем да се възползваме, когато използваме Какво, команда за търсене на файлове или папки.

За да получите помощта на изпълнението на командата:

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 със сигурност е полезен, особено за работа с имена на файлове, които включват интервали и други необичайни символи. Например, спомням си веднъж, че нямаше начин да успея да компресирам набор от директории, докато не ми хрумна да използвам 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.    сиг84 каза той

        Магея липсва missing

        1.    KZKG ^ Гаара каза той

          Да, дясно 😀
          В момента се основавам на това хехехехе. Благодаря 🙂

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

            И един за дистрибуцията ми ...

  5.   Archero каза той

    Благодаря, командите са много полезни, имам съмнение, че помня, че в Ubuntu веднъж използвах командата locate, това е някакъв псевдоним на find или ...

    1.    Уго каза той

      Отрицателен. намерете, mlocate y гуляй са други команди за търсене, които за разлика от намерите, те използват база данни, която трябва периодично да се актуализира с командата актуализиран b.

      И двата типа команди имат своите приложения. Аз например обикновено използвам актуализиран b последвано от mlocateнамирам, когато наистина искам да намеря нещо бързо в директория с много данни, за които знам, че не се актуализират твърде често (например пакет в хранилище), и намерите когато искам да направя нещо по-сложно, като например да комбинирам резултатите от търсенето с друга команда, или когато просто не искам да генерирам базата данни, защото знам, че директорията, в която ще търся, не съдържа твърде много информация.

      1.    Archero каза той

        Благодаря ви много Hugo, отлично обяснение, мога само да кажа колко мощен е терминалът в gnu / linux!

  6.   Сандра каза той

    Здравейте, виждам, че това е стара тема, но дано все пак можете да ми помогнете.

    Уча се да използвам regexp, тъй като видях документ и търся думите грешка или неуспех и техните производни грешки или неуспех или неуспех и т.н., а моят регулярен израз е:
    : / \ (. * \ (грешка | неуспех \). * \) /
    Когато го изпълнява, той ми казва, че няма съвпадения 🙁 освен да
    : / \ (. * \ (грешка \). * \) /
    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 * -type d и find / home / pepe -type d? Искам да изброя директориите на моя акаунт и не разбирам защо първият го прави правилно, а вторият не. помощ за

  9.   кайке каза той

    Как мога да намеря файлове, които завършват с цифри? Благодаря