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
ฉันพบว่าความรู้เกี่ยวกับเชลล์นั้นมีค่ามากเมื่อดูแลเซิร์ฟเวอร์หรือเพียงแค่จัดการไฟล์คอลเลกชันของคุณและช่วยฉันชั่วโมงที่จะมีงานทำด้วยมือ.
และใช่ฉันรู้ว่ามีเครื่องมือมากมายที่สามารถเปลี่ยนชื่อไฟล์หลาย ๆ ไฟล์ได้.