Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

ในบทความนี้ เราอธิบายวิธีเปลี่ยนชื่อไฟล์ หรือหลายไฟล์ใน Linux โดยใช้สองวิธีที่แตกต่างกัน

ลองขุดลึกการเปลี่ยนชื่อไฟล์ การใช้ mv และ rename และทำไมเราใช้เครื่องมือเฉพาะ

เปลี่ยนชื่อไฟล์ด้วย mv – ไม่ใช่วิธีที่แนะนำอีกต่อไป

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

ping www.linuxscrew.com #Test connectivity first. wget -m www.linuxscrew.com #Mirror on

ตอนนี้เราเป็นเจ้าของเว็บไซต์ที่ mirror แล้ว มาทำลายมัน

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

Linux Shell – Amp Files

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

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

mv Error

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

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

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 แบบง่าย นี่คือล็อกบางอย่าง มาเปลี่ยนชื่อหนึ่ง

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

Log files

เปลี่ยนชื่อไฟล์เดี่ยว

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

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

mv Command to Move Files

นั่นคือ ไฟล์ถูกเปลี่ยนชื่อ หากคุณต้องการใช้ rename แทน:

rename '' "`date +%Y-%m-%d`"- cloud-init.log

และเพื่อประหยัดเวลาบ้าง คุณสามารถเก็บวันที่เป็นตัวแปร

date="`date +%Y-%m-%d`"

คุณจะสังเกตว่าการใช้ rename แทน mv ไม่มีค่าใช้จ่ายเพิ่มเติมมาก แค่แทนที่ตัวกรองนิพจน์แรกด้วยผลลัพธ์ว่าง

ต่อท้ายวันที่กับชื่อไฟล์

เปลี่ยนชื่อไฟล์ใน Linux ได้อย่างง่ายดาย: สองวิธีที่พิสูจน์แล้ว

Appending date to filenames

นั่นคือ ชื่อไฟล์ต่อท้ายกับวันที่ สะดวกและง่าย

สรุป

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