Gamit ang terminal: Mga halimbawa sa Find command

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


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   angkop dijo

    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.

  2.   taregon dijo

    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 😐

  3.   Hugo dijo

    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

  4.   elektron222 dijo

    Kagiliw-giliw na ^ _ ^

    1.    KZKG ^ Gaara dijo

      Ang cool ng itsura ng Chakra icon hahahahahaha 😀

      1.    pagkubkob84 dijo

        Nawawala si Mageia 🙂

        1.    KZKG ^ Gaara dijo

          Yup kanan 😀
          Sa ngayon ay naka-base ako dito hehehehe. Salamat 🙂

          1.    lesterzone dijo

            At isa para sa distro ko ...

  5.   Archero dijo

    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 ...?

    1.    Hugo dijo

      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.

      1.    Archero dijo

        Maraming salamat Hugo, mahusay na paliwanag, masasabi ko lang kung gaano ka-kapangyarihan ang terminal sa gnu / linux!

  6.   Sandra dijo

    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?

    1.    KZKG ^ Gaara dijo

      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

  7.   esthefani dijo

    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.

  8.   pepG dijo

    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

  9.   kaike dijo

    Paano ko mahahanap ang mga file na nagtatapos sa mga numero? Salamat