Ето няколко примера, от които можем да се възползваме, когато използваме Какво, команда за търсене на файлове или папки.
За да получите помощта на изпълнението на командата:
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 със сигурност е полезен, особено за работа с имена на файлове, които включват интервали и други необичайни символи. Например, спомням си веднъж, че нямаше начин да успея да компресирам набор от директории, докато не ми хрумна да използвам find с xargs (което между другото е много по-бързо от -exec) и проблемът е решен.
Друго от предпочитаните ми приложения за командата find е рекурсивна промяна на разрешенията:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Интересно ^ _ ^
Колко страхотно изглежда иконата на Чакра хахахахахаха 😀
Магея липсва missing
Да, дясно 😀
В момента се основавам на това хехехехе. Благодаря 🙂
И един за дистрибуцията ми ...
Благодаря, командите са много полезни, имам съмнение, че помня, че в Ubuntu веднъж използвах командата locate, това е някакъв псевдоним на find или ...
Отрицателен. намерете, mlocate y гуляй са други команди за търсене, които за разлика от намерите, те използват база данни, която трябва периодично да се актуализира с командата актуализиран b.
И двата типа команди имат своите приложения. Аз например обикновено използвам актуализиран b последвано от mlocateнамирам, когато наистина искам да намеря нещо бързо в директория с много данни, за които знам, че не се актуализират твърде често (например пакет в хранилище), и намерите когато искам да направя нещо по-сложно, като например да комбинирам резултатите от търсенето с друга команда, или когато просто не искам да генерирам базата данни, защото знам, че директорията, в която ще търся, не съдържа твърде много информация.
Благодаря ви много Hugo, отлично обяснение, мога само да кажа колко мощен е терминалът в gnu / linux!
Здравейте, виждам, че това е стара тема, но дано все пак можете да ми помогнете.
Уча се да използвам regexp, тъй като видях документ и търся думите грешка или неуспех и техните производни грешки или неуспех или неуспех и т.н., а моят регулярен израз е:
: / \ (. * \ (грешка | неуспех \). * \) /
Когато го изпълнява, той ми казва, че няма съвпадения 🙁 освен да
: / \ (. * \ (грешка \). * \) /
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 * -type d и find / home / pepe -type d? Искам да изброя директориите на моя акаунт и не разбирам защо първият го прави правилно, а вторият не. помощ за
Как мога да намеря файлове, които завършват с цифри? Благодаря