โฮมเพจ » ทำอย่างไร » Shell Geek เปลี่ยนชื่อหลายไฟล์พร้อมกัน

    Shell Geek เปลี่ยนชื่อหลายไฟล์พร้อมกัน

    สมมติว่าคุณมีไดเรกทอรีที่มีหลายร้อยไฟล์ด้วยชื่อไฟล์ผิดและคุณต้องการแทนที่ทุกชื่อไฟล์ที่มี ทดสอบ กับ แยง. (นี่เป็นตัวอย่างที่วางแผนไว้) เราสามารถทำสิ่งนี้ได้อย่างง่ายดายด้วยคำสั่ง“ for” ในการทุบตีรวมกับความดีของการทุบตีเล็กน้อย วันนี้เราจะเรียนรู้วิธีการแทนที่ข้อความในตัวแปรใน for for loop.

    คำสั่ง "สำหรับ" ทำงานเช่นนี้:

    สำหรับ var in; do $ var; done

    คุณสามารถแทนที่ ด้วยรูปแบบการจับคู่ไฟล์ใด ๆ เช่น * หรือ * .txt และคุณสามารถแทนที่ได้ ด้วยคำสั่ง linux ใด ๆ คำสั่งจะทำงานตามลำดับในแต่ละไฟล์ที่จับคู่โดยรูปแบบการจับคู่ไฟล์.

    นี่คือที่การจัดการตัวแปร bash ทำให้น่าสนใจยิ่งขึ้น แทนที่จะทำอะไรบางอย่างเช่น“ mv $ var” เราสามารถแทนที่ข้อความในชื่อไฟล์โดยใช้ไวยากรณ์นี้:

    $ var / originaltext / ReplaceText

    ดังนั้นตอนนี้ถ้าเรารันคำสั่งนี้ในไดเรกทอรีของเรา:

    สำหรับ f in *; do mv $ f $ f / test / prod;

    สำหรับแต่ละไฟล์ที่ตรงกับ *, bash จะดำเนินการคำสั่งที่คล้ายกับสิ่งนี้:

    mv test.config prod.config

    ฉันพบว่าความรู้เกี่ยวกับเชลล์นั้นมีค่ามากเมื่อดูแลเซิร์ฟเวอร์หรือเพียงแค่จัดการไฟล์คอลเลกชันของคุณและช่วยฉันชั่วโมงที่จะมีงานทำด้วยมือ.

    และใช่ฉันรู้ว่ามีเครื่องมือมากมายที่สามารถเปลี่ยนชื่อไฟล์หลาย ๆ ไฟล์ได้.