Narito ang ilang mga halimbawa na maaari nating samantalahin kapag gumamit kami Mahanap, isang utos na maghanap para sa mga file o folder.
Upang makakuha ng tulong para sa pagpapatakbo ng utos:
man find
upang umalis sa manwal, pindutin lamang ang susi [q] (wasto para sa anumang manwal).
Sa mga sumusunod na halimbawa, ang panahon (.) Matapos hanapin (hanapin.) Nangangahulugan na tinitingnan namin ang folder na ipinahiwatig ng prompt. Maaari itong mapalitan para sa anumang wastong landas tulad ng / bahay /.
Ejemplos:
Paghahanap lamang para sa mga file na may isang pattern.
find . -type f -name "*.deb"
hanapin at kopyahin ang / bahay / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Hanapin ang mga Thumbs.db file at tanggalin ang mga ito.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Lumikha ng isang purong file ng teksto kasama ang mga md5 file sa direktoryo.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Tanggalin ang mga nakakainis na .svn folder.
find | grep "\.svn$" | xargs rm -fr
Palitan ang isang teksto ng isa pa.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Maghanap ng mga file na na-update hanggang sa isang araw na ang nakakaraan.
find /var/log/[a-z]* \*.sql -mtime +1
Upang makabuo ng mga file na md5sums ng mga DEB package:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
tanggalin ang lahat ng mga file maliban sa .txt (malinaw naman .txt ay maaaring maging anumang)
hanapin ! -pangalan ng "* .txt" -exec rm {} \;
maghanap nang walang mga case-insensitive na tugma:
hanapin -iname «* foobar *»
Pangungusap: ang utos na -exec ay hindi maaaring patakbuhin sa parameter na -iname.
Mahusay 😉 ang utos na ito ay dapat na sapilitan na malaman, bago ako natakot ng mga pagpipilian na umiiral sa 'tao' upang makapag-paghahanap, ngunit binibigyan ko ito ng pagkakataon na nakikita ko kung gaano ito kalakasan pagdating sa paghanap ng nakalimutan ko sa aking hard drive 😐
Tiyak na kapaki-pakinabang ang paghahanap, lalo na para sa pagharap sa mga filename na may kasamang mga puwang at iba pang hindi pangkaraniwang mga character. Halimbawa, natatandaan ko minsan na walang paraan na maaari kong pamahalaan upang mai-compress ang isang hanay ng mga direktoryo, hanggang sa maganap sa akin na gamitin ang hanapin sa xargs (na mas mabilis kaysa sa -exec by the way), at nalutas ang problema.
Ang isa pa sa aking ginustong paggamit para sa paghahanap ng utos ay ang recursively baguhin ang mga pahintulot:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Kagiliw-giliw na ^ _ ^
Ang cool ng itsura ng Chakra icon hahahahahaha 😀
Nawawala si Mageia 🙂
Yup kanan 😀
Sa ngayon ay naka-base ako dito hehehehe. Salamat 🙂
At isa para sa distro ko ...
Salamat, kapaki-pakinabang ang mga utos, may pag-aalinlangan na naaalala ko na sa Ubuntu minsan kong ginamit ang hanapin ang utos, ito ba ay ilang alias ng hanapin o ...?
Negatibo hanapin, mlocate y magbaluktot ay iba pang mga utos sa paghahanap na hindi katulad mahanap, gumagamit sila ng isang database na kailangang pana-panahong mai-update gamit ang utos na-updateb.
Ang parehong uri ng mga utos ay may mga gamit. Halimbawa, karaniwang ginagamit ko na-updateb sinusundan ng mlocatehanapin kung kailan ko talaga nais na makahanap ng isang bagay na mabilis sa isang direktoryo na may maraming data na alam kong hindi masyadong na-update (halimbawa, isang pakete sa isang lalagyan), at mahanap kapag nais kong gumawa ng isang bagay na mas kumplikado tulad ng pagsamahin ang mga resulta ng paghahanap sa isa pang utos, o kapag ayaw ko lamang makabuo ng database dahil alam kong ang direktoryo na aking hahanapin ay hindi naglalaman ng masyadong maraming impormasyon.
Maraming salamat Hugo, mahusay na paliwanag, masasabi ko lang kung gaano ka-kapangyarihan ang terminal sa gnu / linux!
Kumusta, nakikita ko na ito ay isang lumang paksa, ngunit sana ay matutulungan mo pa rin ako.
Natututo akong gamitin ang regexp dahil nakakita ako ng isang dokumento at hinahanap ko ang mga salitang mali o nabigo at ang kanilang mga derivatives error o nabigo o pagkabigo atbp at ang aking regexp ay:
: / \ (. * \ (error | mabigo \). * \) /
Kapag naisakatuparan ito, sinasabi nito sa akin na walang mga tugma 🙁 ngunit sa
: / \ (. * \ (error \). * \) /
o
: / \ (. * \ (nabigo \). * \) /
Kung makakita ka ng mga tugma, maaari mo bang sabihin sa akin kung paano ako nagkakamali?
Ano ang buong linya na inilalagay mo?
Upang masubukan at makita kung nakita ko ang solusyon.
Sa kabilang banda, gayon pa man kung nais mo maaari kang mag-check dito: https://blog.desdelinux.net/?s=expresiones+regulares
Mangyaring tulungan ako, nais kong kopyahin ang mga file na nagtatapos sa * _ZFIR0069.TXT sa isa pang landas at at magdagdag ng isang petsa sa dulo, nagsasagawa ako ng isang utos:
petsa = $ (petsa + »% Y% m% d%»)
hanapin / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Ngunit ang resulta ay:
{} _20160225% -> ngunit ang isang kopya lamang ng kopya nito ang kinokopya ng lahat at pinalitan ito ng ganoong paraan
Ang nais ko ay upang makopya nito ang lahat ng mga file at magkaroon ng format na ito * _ZFIR0069_ $ date .TXT
Pagbati.
Ano ang pagkakaiba sa pagitan ng find * -type d at find / home / pepe -type d? Nais kong ilista ang mga direktoryo ng aking account at hindi ko maintindihan kung bakit ang una ay tama ang ginagawa nito at ang pangalawa ay hindi. tulong sa
Paano ko mahahanap ang mga file na nagtatapos sa mga numero? Salamat