ในบทความนี้ เราอธิบายวิธีเปลี่ยนชื่อไฟล์ หรือหลายไฟล์ใน Linux โดยใช้สองวิธีที่แตกต่างกัน
ลองขุดลึกการเปลี่ยนชื่อไฟล์ การใช้ mv และ rename และทำไมเราใช้เครื่องมือเฉพาะ
เปลี่ยนชื่อไฟล์ด้วย mv – ไม่ใช่วิธีที่แนะนำอีกต่อไป
คุณมีไดเรกทอรีเว็บที่ไม่รู้ว่าทำไม นามสกุลกลายเป็นเสีย เราจะใช้ไฟล์ของบล็อกสำหรับตัวอย่างของเรา
ping www.linuxscrew.com #Test connectivity first. wget -m www.linuxscrew.com #Mirror on
ตอนนี้เราเป็นเจ้าของเว็บไซต์ที่ mirror แล้ว มาทำลายมัน

Linux Shell – Amp Files
นั่นคือไฟล์ ?amp เยอะมากที่เรามีอยู่ที่นั่น น่าเสียดายที่เราทำลายมันทั้งหมดเป็นไฟล์ .html และดูเหมือนจะมีอีกนิดหน่อยในนั้น มาย้ายไปไดเรกทอรี pages และแก้ข้อผิดพลาดของเราที่เปลี่ยนทุกอย่างเป็นไฟล์ .html อินเทอร์เน็ตบอกฉันว่าการทำ "mv *[extension1] *[extension2]" ให้ฉันได้สิ่งที่ฉันต้องการ

mv Error
คุณจะดูสิ่งนั้น ข้อผิดพลาด ทำไมคำสั่ง mv ไม่ทำงานเหมือนที่คาดหวัง? ลองบนเดสก์ท็อปท้องถิ่น Pop_OS เรามีไฟล์ .html ว่างสองไฟล์ มาย้ายพวกมันเป็น .pdf

mv Error
ข้อผิดพลาดเดียวกัน สิ่งต่างๆ เปลี่ยนไป และวิธีที่เราเคยทำกลายเป็นล้าสมัย คล้ายกับว่า ifconfig ถูก deprecated และส่วนใหญ่ควรย้ายไป ip a หรือ ip r Address and route การใช้เครื่องมือเฉพาะในวิธีที่ไม่ได้ตั้งใจอาจทำลายขั้นตอนในภายหลัง นั่นคือ soapbox อื่นสำหรับบทความอื่น
แทนที่จะเป็นเช่นนั้น เราควรใช้เครื่องมือเฉพาะสำหรับวัตถุประสงค์เฉพาะ ในกรณีนี้ rename แทน mv หากคุณต้องการใช้ mv เพื่อเปลี่ยนชื่อไฟล์ ใช้มันน้อยและสำหรับไอเท็มเดี่ยว
เปลี่ยนชื่อหลายไฟล์ด้วย rename
เราแสดงกรณีการรวมเครื่องมือสองอย่างเพื่อสร้างการเปลี่ยนชื่อไฟล์จำนวนมากที่ทนทาน
find . -depth -type f -name "*?amp" -execdir rename ?amp .html {} \;
เดินผ่านตัวเลือก
- ตัวแรก -depth ป้องกันไม่ให้เราทำลายไอเท็มลูกขณะที่มันเคลื่อนผ่านไดเรกทอรี
- เราระบุ -type f (file) ดังนั้นมันจะไม่เสียสำหรับกรณีการใช้งานนี้ แต่ เราต้องการให้การดำเนินการทนทาน เราจะรวม depth อยู่ดี
- -name อนุญาตให้เราระบุว่ากำลังมองหาอะไร และส่งต่อให้ rename ด้วย -execdir
- จากนั้นเราระบุว่ากำลังมองหา pattern ?amp เพื่อแทนที่ด้วย .HTML
- เติมตัวเลือกสุดท้ายด้วยทุกอย่างที่ดึงจากคำสั่ง find
ง่าย! -ish มาย้อนกลับ และดูฟังก์ชัน rename แบบง่าย นี่คือล็อกบางอย่าง มาเปลี่ยนชื่อหนึ่ง

Log files
เปลี่ยนชื่อไฟล์เดี่ยว
สำหรับไฟล์เดี่ยว มัน "ง่ายที่สุด" ที่จะใช้ mv แทนการใช้ rename

mv Command to Move Files
นั่นคือ ไฟล์ถูกเปลี่ยนชื่อ หากคุณต้องการใช้ rename แทน:
rename '' "`date +%Y-%m-%d`"- cloud-init.log
และเพื่อประหยัดเวลาบ้าง คุณสามารถเก็บวันที่เป็นตัวแปร
date="`date +%Y-%m-%d`"
คุณจะสังเกตว่าการใช้ rename แทน mv ไม่มีค่าใช้จ่ายเพิ่มเติมมาก แค่แทนที่ตัวกรองนิพจน์แรกด้วยผลลัพธ์ว่าง
ต่อท้ายวันที่กับชื่อไฟล์

Appending date to filenames
นั่นคือ ชื่อไฟล์ต่อท้ายกับวันที่ สะดวกและง่าย
สรุป
การเปลี่ยนชื่อไฟล์เป็นงานง่าย เรียนรู้วิธีเปลี่ยนชื่อไดเรกทอรี หรือดูบทความอื่นๆ ของเราสำหรับงานประจำวันเพิ่มเติม