Ось кілька прикладів, якими ми можемо скористатися, коли використовуємо знайти, команда для пошуку файлів або папок.
Щоб отримати допомогу щодо запуску команди:
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
видалити всі файли, крім .txt (очевидно, що .txt може бути що завгодно)
знайти. ! -назву "* .txt" -exec rm {} \;
пошук без збігів регістру:
знайти. -інам «* foobar *»
Примітка: Команда -exec не може бути виконана з параметром -iname.
Відмінно 😉 ця команда повинна бути обов’язковою, щоб знати, перш ніж мене лякали варіанти, які існують у «людині», щоб мати можливість здійснювати пошук, але, даючи їй можливість, я міг переконатись, наскільки вона потужна, коли йдеться про те, що я забув на моєму жорсткому диску 😐
Пошук, безсумнівно, корисний, особливо для роботи з іменами файлів, які містять пробіли та інші незвичні символи. Наприклад, я одного разу пам’ятаю, що жодним чином не вдалося стиснути набір каталогів, поки мені не спало на думку використовувати find з xargs (що, до речі, набагато швидше, ніж -exec), і проблему вирішено.
Ще одне з моїх бажаних застосувань для команди find - це рекурсивна зміна дозволів:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Цікаво ^ _ ^
Як круто виглядає значок Чакри ха-ха-ха-ха-ха 😀
Магейя зник 🙂
Ага, правильно 😀
Зараз я базуюся на цьому хе-хе-хе. Дякую 🙂
І один для мого дистрибутиву ...
Дякую, команди дуже корисні, я маю сумніви, пам’ятаю, що в Ubuntu я колись використовував команду locate, це якийсь псевдонім find чи ...?
Негативний розмістити, містити y розкошувати - це інші команди пошуку, які на відміну від знаходити, вони використовують базу даних, яку потрібно періодично оновлювати за допомогою команди оновленоb.
Обидва типи команд мають своє використання. Я, наприклад, зазвичай використовую оновленоb слідує міститизнайти, коли я справді хочу швидко знайти щось у каталозі з великою кількістю даних, які, як я знаю, не надто часто оновлюються (наприклад, пакет у сховищі), і знаходити коли я хочу зробити щось більш складне, наприклад, поєднати результати пошуку з іншою командою, або коли я просто не хочу генерувати базу даних, бо знаю, що каталог, в якому я збираюся шукати, не містить занадто багато інформації.
Щиро дякую, Гюго, чудове пояснення, я можу сказати лише, наскільки потужний термінал у gnu / linux!
Привіт, я бачу, що це стара тема, але, сподіваюся, ви все одно можете мені допомогти.
Я вчуся використовувати регулярний вираз, оскільки побачив, що маю документ, і шукаю слова помилка або помилка та помилки похідних або помилка або помилка тощо, і мій регулярний вираз:
: / \ (. * \ (помилка | помилка \). * \) /
При його виконанні він говорить мені, що не існує збігів 🙁, крім
: / \ (. * \ (помилка \). * \) /
o
: / \ (. * \ (помилка \). * \) /
Якщо ви знайдете збіги, чи можете ви сказати мені, як я помиляюся?
Який повний рядок ви ставите?
Щоб перевірити і побачити, чи знайду я рішення.
З іншого боку, у будь-якому випадку, якщо ви хочете, ви можете перевірити тут: https://blog.desdelinux.net/?s=expresiones+regulares
Будь ласка, допоможіть мені, я хочу скопіювати файли, які закінчуються на * _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
Привіт.
Яка різниця між find * -типом d та find / home / pepe -типом d? Я хочу перерахувати каталоги свого облікового запису, і я не розумію, чому перший робить це правильно, а другий - ні. допомогти
Як я можу знайти файли, які закінчуються цифрами? Дякую