ด้วยเทอร์มินัล: ตัวอย่างด้วยคำสั่ง Find

นี่คือตัวอย่างบางส่วนที่เราสามารถใช้ประโยชน์จากเมื่อเราใช้ประโยชน์ได้ หาคำสั่งสำหรับค้นหาไฟล์หรือโฟลเดอร์

หากต้องการความช่วยเหลือสำหรับการรันคำสั่ง:

man find

ในการออกจากคู่มือเพียงแค่กดปุ่ม [Q] (ใช้ได้กับคู่มือใด ๆ )

ในตัวอย่างต่อไปนี้จุด (.) หลังการค้นหา (find.) หมายความว่าเรากำลังค้นหาในโฟลเดอร์ที่พรอมต์ระบุ สามารถใช้แทนพา ธ ที่ถูกต้องเช่น / home /

Ejemplos:

เพียงค้นหาไฟล์ที่มีรูปแบบ
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. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   เหมาะสม dijo

    ลบไฟล์ทั้งหมดที่ไม่ใช่. txt (เห็นได้ชัดว่า. txt เป็นอะไรก็ได้)
    หา. ! - ชื่อ "* .txt" -exec rm {} \;

    ค้นหาโดยไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่:
    หา. - ชื่อ« * foobar * »

    หมายเหตุ: คำสั่ง -exec ไม่สามารถดำเนินการกับพารามิเตอร์ -iname

  2.   ทาเรกอน dijo

    ยอดเยี่ยม😉คำสั่งนี้ควรต้องรู้ก่อนที่ฉันจะกลัวตัวเลือกที่มีอยู่ใน 'มนุษย์' เพื่อให้สามารถทำการค้นหาได้ แต่ให้โอกาสฉันได้เห็นว่ามันทรงพลังเพียงใดเมื่อต้องพบสิ่งที่ฉันลืม บนฮาร์ดไดรฟ์ของฉัน😐

  3.   ฮิวโก้ dijo

    Find มีประโยชน์อย่างแน่นอนโดยเฉพาะอย่างยิ่งสำหรับการจัดการกับชื่อไฟล์ที่มีช่องว่างและอักขระที่ผิดปกติอื่น ๆ ตัวอย่างเช่นฉันจำได้ว่าครั้งหนึ่งฉันไม่สามารถจัดการบีบอัดชุดของไดเร็กทอรีได้จนกว่าฉันจะใช้ find กับ xargs (ซึ่งเร็วกว่า -exec มาก) และปัญหาได้รับการแก้ไข

    อีกวิธีหนึ่งที่ฉันต้องการสำหรับคำสั่ง find คือการเปลี่ยนสิทธิ์ซ้ำ ๆ :


    find . -type d -print0 | xargs -0 chmod 755
    find . -type f -print0 | xargs -0 chmod 644

  4.   อิเล็กตรอน 222 dijo

    น่าสนใจ ^ _ ^

    1.    KZKG ^ กาอาระ dijo

      ไอคอนจักระดูเท่แค่ไหน XNUMX 😀

      1.    ซีก84 dijo

        Mageia หายไป🙂

        1.    KZKG ^ กาอาระ dijo

          ใช่แล้ว😀
          ตอนนี้ฉันทำหน้าที่ของตัวเองฮิฮิฮิฮิ ขอบคุณ🙂

          1.    เลสเตอร์โซน dijo

            และอีกหนึ่งสำหรับ distro ของฉัน ...

  5.   Archero dijo

    ขอบคุณคำสั่งมีประโยชน์มากฉันมีข้อสงสัยว่าฉันจำได้ว่าใน Ubuntu ครั้งหนึ่งฉันเคยใช้คำสั่ง locate มันเป็นนามแฝงของ find หรือ ... ?

    1.    ฮิวโก้ dijo

      เชิงลบ ค้นหา, มล y ค้นหา เป็นคำสั่งค้นหาอื่น ๆ ที่ไม่เหมือน พบพวกเขาใช้ฐานข้อมูลที่ต้องได้รับการอัปเดตเป็นระยะด้วยคำสั่ง ปรับปรุงข.

      คำสั่งทั้งสองประเภทมีการใช้งาน ตัวอย่างเช่นฉันมักจะใช้ ปรับปรุงข ตามด้วย มลค้นหาเมื่อฉันต้องการค้นหาบางสิ่งอย่างรวดเร็วในไดเร็กทอรีที่มีข้อมูลจำนวนมากที่ฉันรู้ว่าไม่ได้อัปเดตบ่อยเกินไป (เช่นแพ็คเกจในที่เก็บ) และ พบ เมื่อฉันต้องการทำบางสิ่งที่ซับซ้อนมากขึ้นเช่นรวมผลการค้นหาด้วยคำสั่งอื่นหรือเมื่อฉันไม่ต้องการสร้างฐานข้อมูลเพราะฉันรู้ว่าไดเร็กทอรีที่ฉันจะค้นหาไม่มีข้อมูลมากเกินไป

      1.    Archero dijo

        ขอบคุณมาก Hugo คำอธิบายที่ยอดเยี่ยมฉันพูดได้แค่ว่าเทอร์มินัลมีประสิทธิภาพแค่ไหนใน gnu / linux!

  6.   แซนดร้า dijo

    สวัสดีฉันเห็นว่านี่เป็นหัวข้อเก่า แต่หวังว่าคุณจะยังช่วยฉันได้

    ฉันเรียนรู้ที่จะใช้ regexp ตั้งแต่ฉันเห็นเอกสารและฉันกำลังมองหาข้อผิดพลาดหรือล้มเหลวของคำและข้อผิดพลาดของอนุพันธ์หรือล้มเหลวหรือล้มเหลวเป็นต้นและ regexp ของฉันคือ:
    : / \ (. * \ (ข้อผิดพลาด | ล้มเหลว \). * \) /
    เมื่อดำเนินการมันบอกฉันว่าไม่มีการจับคู่🙁 แต่ถึง
    : / \ (. * \ (ข้อผิดพลาด \). * \) /
    o
    : / \ (. * \ (ล้มเหลว \). * \) /
    หากคุณพบรายการที่ตรงกันคุณช่วยบอกได้ไหมว่าฉันผิด

    1.    KZKG ^ กาอาระ dijo

      บรรทัดเต็มที่คุณใส่คืออะไร?

      เพื่อทดสอบและดูว่าฉันพบวิธีแก้ปัญหาหรือไม่

      ในทางกลับกันหากคุณต้องการคุณสามารถตรวจสอบได้ที่นี่: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   เอสเธฟานี dijo

    โปรดช่วยฉันด้วยฉันต้องการคัดลอกไฟล์ที่ลงท้ายด้วย * _ZFIR0069.TXT ไปยังเส้นทางอื่นและเพิ่มวันที่ต่อท้ายฉันกำลังทำคำสั่ง:

    วันที่ = $ (วันที่ + »% Y% m% d% »)
    ค้นหา / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;

    แต่ผลลัพธ์คือ:

    {} _20160225% -> แต่จะคัดลอกเพียงไฟล์เดียวจากทั้งหมดและเปลี่ยนชื่อเป็นแบบนั้น

    สิ่งที่ฉันต้องการคือคัดลอกไฟล์ทั้งหมดและมีรูปแบบนี้ * _ZFIR0069_ $ date .TXT

    อาศิรพจน์

  8.   ความห้าวหาญ dijo

    อะไรคือความแตกต่างระหว่าง find * -type d และ find / home / pepe -type d? ฉันต้องการแสดงรายการไดเรกทอรีของบัญชีของฉันและฉันไม่เข้าใจว่าเหตุใดรายการแรกจึงทำงานได้อย่างถูกต้องและรายการที่สองไม่ปรากฏ ช่วยในการ

  9.   ไคเกะ dijo

    ฉันจะค้นหาไฟล์ที่ลงท้ายด้วยตัวเลขได้อย่างไรขอบคุณ