วิธีคัดลอกด้วย cp และแยกไฟล์หรือไดเรกทอรีภายใน (เทียบเท่ากับ rsync - ไม่รวม)

ถ้าฉันขอให้คุณพูดถึงคำสั่งในการคัดลอกโฟลเดอร์ไปยังตำแหน่งอื่นเกือบทุกคนจะพูดถึง cp.

ตอนนี้ถ้าฉันบอกคุณว่านอกจากนี้คุณต้องคัดลอกเนื้อหาทั้งหมดของโฟลเดอร์นั้นยกเว้น 1 ไฟล์มีหลายคนที่คิดว่าจะเหลือและคนอื่น ๆ จะพูดถึง rsyncจากนั้นด้วยพารามิเตอร์ -ไม่รวม คุณสามารถยกเว้นไฟล์ X หรือโฟลเดอร์และไม่คัดลอกได้ แต่ ... คุณรู้ไหมว่า cp ยังให้คุณทำสิ่งนี้ได้? ... O_O …ใช่เพื่อน cp มี "ไม่รวม" เป็นของตัวเองฮิฮิ

ตัวอย่างเช่นเรามีโฟลเดอร์ isos ที่มี: ubuntu.iso, เดเบียน.iso y Archlinux.iso :

และเกิดขึ้นว่าเราต้องการคัดลอกไปยังโฟลเดอร์อื่น (distros-debซึ่งว่างเปล่า) ไฟล์ เดเบียน.iso y ubuntu.isoนั่นคือทั้งหมดยกเว้น archlinux.iso

สำหรับสิ่งนี้เราสามารถคัดลอกไฟล์และอีกไฟล์หนึ่งด้วยตนเอง แต่การใช้ตัวเลือกที่ระบบเสนอให้เรานั้นฉลาดกว่ามากใช่ไหม? …😀…ตัวอย่างเช่นในการทำสิ่งนี้:

cp isos/!(archlinux.iso) distros-deb/

และนี่ก็เพียงพอแล้วที่จะคัดลอกทุกอย่างที่มีอยู่ในไดเร็กทอรี isos ไปยัง distros-deb ทุกอย่างยกเว้น archlinux.iso 😉

แต่สมมติว่าเราไม่ได้มีแค่ 3 ไฟล์เท่านั้น แต่เรายังมี fedora.iso และ chakra.iso ... และเราต้องการทำเช่นเดียวกันมันก็จะถูกแยกออกจากสำเนา fedora.iso และ chakra.iso ด้วยมาดูกัน ทำอย่างไร:

cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/

อย่างที่คุณเห็นสามารถยกเว้นไฟล์หรือโฟลเดอร์ได้หลายไฟล์เราแยกไฟล์เหล่านั้นด้วยไพพ์เท่านั้น (|) และเรื่องได้รับการแก้ไข😀

ด้วยเหตุนี้ฉันไม่ได้หมายความว่า cp จะดีกว่าสำหรับทุกสิ่งมากกว่า rsync ... แต่ทั้งสองเป็นเครื่องมือที่ยอดเยี่ยมเช่น ... คุณรู้พารามิเตอร์หรือไม่ -u de cpเหรอ? ... ฮิฮิไม่แน่ใจ😉

ไม่มีอะไรจะเพิ่มเติม ... นี่เป็นเคล็ดลับที่น่าสนใจหรือไม่? 😀

ความนับถือ


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

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

  1.   หยอกล้อ dijo

    ฉันไม่รู้วิธีนี้คุณมักจะเรียนรู้สิ่งใหม่ ๆ
    เคล็ดลับที่ยอดเยี่ยมขอบคุณ

    1.    KZKG ^ กาอาระ dijo

      ขอขอบคุณ

  2.   Croto dijo

    เคล็ดลับดีมากไม่รู้! ยังคงเป็นเพียงการอธิบายให้ผู้ใช้ Arch และ Fedora ทราบว่าเหตุใดคุณจึงยกเว้น iso hehe

    1.    KZKG ^ กาอาระ dijo

      JAJAJAJAJAJA ฉันไม่ได้ใส่ Arch และ Fedora ISO เพราะตัวอย่างพยายามคัดลอกเฉพาะ Deb distros ...

  3.   ฐานสิบหก dijo

    ที่นี่เราต้องทำสองสามจุด หนึ่งคือสิ่งนี้ใช้ได้เฉพาะเมื่อเปิดใช้งานตัวเลือก extglob ของ bash หากไม่เป็นเช่นนั้นจะเปิดใช้งานด้วยคำสั่งนี้:

    ร้านค้า -s extglob

    สามารถใส่ใน. bashrc เพื่อเปิดใช้งานได้เสมอ

    อีกประเด็นหนึ่งคือเคล็ดลับนี้ไม่ใช่ตัวเลือกของคำสั่ง cp แต่ใช้ได้ในระดับ bash ซึ่งหมายความว่าสามารถใช้กับคำสั่งใดก็ได้ ไม่ใช่เฉพาะกับ cp. คุณสามารถทำแบบทดสอบได้โดยเขียน:

    ไฟล์ echo: isos /! (archlinux.iso | fedora.iso | chakra.iso)

    มิฉะนั้นจะเป็นเคล็ดลับที่มีประโยชน์มาก พร้อมกับตัวเลือก -u เป็น cp ซึ่งฉันพบว่ามีประโยชน์เป็นครั้งคราว

    1.    แดเนียล โรจาส dijo

      แน่นอนว่ามันเป็นนิพจน์ทั่วไป

      1.    ฐานสิบหก dijo

        มันเป็นรูปแบบที่ขยายออกไป นิพจน์ทั่วไปเป็นอย่างอื่น แต่ดูเหมือนว่า 🙂

    2.    KZKG ^ กาอาระ dijo

      ใช่ -u ใน cp นั้นน่าสนใจจริงๆ ฉันยอมรับว่าฉันเป็นแฟนตัวยงของ rsync ... แต่ฉันไม่รู้ว่าฉันมีความผูกพันกับ cp ที่ไม่ดีฮ่า ๆ ๆ ๆ

      เกี่ยวกับการเปิดใช้งาน shopt ฉันไม่รู้ฉันคิดว่ามันทำงานโดยอัตโนมัติขอบคุณสำหรับเคล็ดลับ

      และใช่ฉันสงสัยว่ามันเกี่ยวข้องกับ Bash มากกว่า cp แต่ฉันยังไม่ได้ลองสร้าง rm หรือ cat หรืออะไรทำนองนั้น :)

      ขอบคุณสำหรับความคิดเห็นฉันทำได้จริงๆ😀

      1.    ฐานสิบหก dijo

        มันเป็นความสุขที่ได้ทำของฉัน 🙂

        1.    KZKG ^ กาอาระ dijo

          อันที่จริงฉันสนใจที่จะเรียนรู้เกี่ยวกับนิพจน์ทั่วไปมาโดยตลอด ... คุณรู้สึกตื่นเต้นและมีมือใหม่โพสต์เกี่ยวกับเรื่องนี้หรือไม่? 😀

          1.    ฐานสิบหก dijo

            ฮ่า ๆ!! คุณมีฉันอยู่แล้ว 🙂ดีใจแค่ไหนก็ไม่มีความคิดเห็น…🙂

            ความจริงก็คือเขาโทรหาฉัน 🙂 แต่ฉันยังต้องคิดเกี่ยวกับเรื่องนี้สักหน่อย ดูเหมือนยากที่จะอธิบาย

            1.    KZKG ^ กาอาระ dijo

              ไม่มีอะไรไม่ต้องกังวลคุณยังคงแสดงความคิดเห็นว่าคุณยังเรียนรู้อยู่สิ่งสำคัญคือการแบ่งปัน😀


  4.   ทูฟาโดริน dijo

    เคล็ดลับที่ดีมากคุณจะไม่เข้านอนโดยไม่ได้เรียนรู้สิ่งใหม่ ๆ

    1.    KZKG ^ กาอาระ dijo

      แน่นอนและที่ดีที่สุดคือฉันได้เรียนรู้มากมายจากความคิดเห็นที่คุณแสดงไว้ในโพสต์ฉันชอบเรียนรู้สิ่งแปลก ๆ ทุกวัน HAHAHA

  5.   กิสการ์ด dijo

    เคล็ดลับดีๆ ฉันไม่รู้จักเขา🙂

    1.    KZKG ^ กาอาระ dijo

      มีความสุข😉

  6.   @Jlcmux dijo

    แต่เมื่อคุณใส่ isos คุณหมายถึงใส่ debian.iso ubuntu.iso /! (ฯลฯ ฯลฯ )? ไม่

  7.   ฮีเบอร์ dijo

    อันที่จริงมันกลายเป็นเคล็ดลับที่น่าสนใจมาก ไม่เพียงเพราะตัวบทความเท่านั้น แต่ยังเป็นเพราะมูลค่าเพิ่มของความคิดเห็น
    ชุมชนที่สวยงามของ <º Linux

  8.   มาร์ตา เดล โปโซ dijo

    ความช่วยเหลือของคุณไม่มีประโยชน์สำหรับฉันคุณควรยกตัวอย่างเพื่อให้นักเรียนเข้าใจเทคนิคที่ยอดเยี่ยมของคุณได้ดีขึ้น
    ขอบคุณที่สละเวลาฉันจะจดจำหน้านี้ไว้ในใจตลอดไป

  9.   felipe016 dijo

    คุณบอกว่าคุณข้ามไดเรกทอรีอย่างไรก็ตามในตัวอย่างคุณข้ามไฟล์เท่านั้นคุณรู้วิธีข้ามไดเรกทอรีเฉพาะหรือไม่? ความนับถือ.