วิธีเปลี่ยนชื่อไดเร็กทอรีบน Linux
เผยแพร่แล้ว: 2022-06-16การเปลี่ยนชื่อไดเร็กทอรีใน Linux เป็นเรื่องง่าย และมีหลายวิธีในการดำเนินการ จากการเปลี่ยนชื่อไดเร็กทอรีเดียวเป็นการค้นหาและการเปลี่ยนชื่อไดเร็กทอรีหลายรายการ มีวิธีดำเนินการดังนี้
ข้อมูลของคุณปลอดภัย
การเปลี่ยนชื่อไดเร็กทอรีเป็นสิ่งที่เราทุกคนต้องทำเป็นครั้งคราว
เราอาจสร้างไดเร็กทอรีและสะกดชื่อไดเร็กทอรีผิด และเราต้องการทำให้มันถูกต้อง บ่อยครั้ง วัตถุประสงค์ของไดเร็กทอรีเปลี่ยนแปลงตลอดเวลาหรือตลอดอายุของโปรเจ็กต์ และคุณต้องการปรับเปลี่ยนชื่อเพื่อให้สอดคล้องกับการใช้งานใหม่ บางทีคุณอาจคลายการบีบอัดไฟล์เก็บถาวร และสร้างแผนผังไดเร็กทอรีที่มีชื่อไดเร็กทอรีเป็นตัวพิมพ์ใหญ่ และคุณต้องการให้เป็นตัวพิมพ์เล็ก
ไม่ว่าจะด้วยเหตุผลอะไรก็ตาม การเปลี่ยนชื่อไดเร็กทอรีไม่ได้ทำอะไรกับข้อมูลที่อยู่ภายใน มันเปลี่ยน เส้นทาง ไปยังข้อมูลนั้น แต่ไฟล์และไดเร็กทอรีภายในไดเร็กทอรีที่เปลี่ยนชื่อจะไม่ถูกแตะต้อง
อย่าเปลี่ยนชื่อไดเรกทอรีระบบ การเปลี่ยนเส้นทางไปยังไฟล์ระบบและคำสั่งต่างๆ จะส่งผลเสียต่อการทำงานของคอมพิวเตอร์ของคุณ อย่างน้อยที่สุด หากคุณต้องการใช้ sudo
เพื่อเปลี่ยนชื่อไดเร็กทอรี—เว้นแต่คุณจะรู้จริงๆ ว่าคุณกำลังทำอะไรอยู่—โอกาสที่คุณไม่ควรเปลี่ยนชื่อไดเร็กทอรี
การใช้คำสั่ง mv
ในกรณีที่ตรงไปตรงมาที่สุด ทั้งหมดที่เราต้องการคือคำสั่ง mv
นี่เป็นส่วนสำคัญของการแจกจ่าย Linux ทุกเครื่อง ดังนั้นจึงไม่ต้องติดตั้งอะไร
คำสั่ง mv
มีอายุมากกว่า 50 ปีในขณะที่เขียน มันมาจากการเริ่มต้นของ Unix เมื่อคำสั่งสั้น ๆ และคลุมเครืออยู่ในสมัย อาจลดจำนวนอักขระที่ต้องส่งผ่านสายอนุกรมที่ช้าจาก teletypes และเทอร์มินัลโง่ไปยังคอมพิวเตอร์จริง
ที่จริงแล้วย่อมาจาก "ย้าย" และสามารถใช้เพื่อย้ายไฟล์จากไดเร็กทอรีไปยังไดเร็กทอรี หากคุณย้ายไฟล์ไปยังตำแหน่งเดิมที่มีอยู่แล้วและตั้งชื่อใหม่ แสดงว่าคุณได้เปลี่ยนชื่อไฟล์ และเราสามารถทำเช่นเดียวกันกับไดเร็กทอรี
มีสองไดเร็กทอรีย่อยในไดเร็กทอรีนี้
ลส
ในการเปลี่ยนชื่อไดเร็กทอรีเราใช้คำสั่ง mv เราจำเป็นต้องระบุชื่อปัจจุบันของไดเร็กทอรีและชื่อใหม่
mv งานเก่า archive-2
หากไดเร็กทอรีที่คุณต้องการเปลี่ยนชื่อไม่อยู่ในไดเร็กทอรีปัจจุบันของคุณ ให้ระบุพาธและชื่อไดเร็กทอรี
mv ~/htg/old-work ~/htg/archive-2
ลส
การใช้ไฟล์เบราว์เซอร์
ไฟล์เบราว์เซอร์สามารถเปลี่ยนชื่อไดเร็กทอรีได้ การกดแป้นพิมพ์ในแอปพลิเคชันไฟล์ GNOME คือ F2 การเน้นไดเร็กทอรีและแตะปุ่ม F2 จะเป็นการเปิดกล่องโต้ตอบ "เปลี่ยนชื่อโฟลเดอร์"
พิมพ์ชื่อใหม่ แล้วคลิกปุ่ม "เปลี่ยนชื่อ" สีเขียว
ไดเร็กทอรีถูกเปลี่ยนชื่อสำหรับคุณ
มันง่ายอย่างนั้น
เปลี่ยนชื่อคำสั่ง
หากความต้องการของคุณซับซ้อนกว่าการเปลี่ยนชื่อไดเร็กทอรีแบบตรงไปตรงมา คุณอาจต้องใช้คำสั่ง rename
ซึ่งช่วยให้คุณใช้นิพจน์ Perl เพื่อเปลี่ยนชื่อไฟล์และไดเร็กทอรีได้ เป็นวิธีที่มีประสิทธิภาพและยืดหยุ่นมากขึ้นในการเปลี่ยนชื่อไดเร็กทอรี
เรากำลังพูดถึงคำสั่ง rename
ตาม Perl มีคำสั่งเก่าอีกคำสั่งหนึ่งที่เรียกว่า rename
ซึ่งเป็นส่วนหนึ่งของยูทิลิตี้หลักของลินุกซ์ คุณอาจต้องติดตั้งคำสั่ง rename
Perl ที่เราต้องการใช้
เพื่อหลีกเลี่ยงความขัดแย้งของชื่อกับคำสั่ง rename
ที่มีอยู่ คำสั่ง Perl rename
จะเรียกว่า prename
บน Fedora และ perl-rename
บน Manjaro บน Ubuntu คำสั่ง rename
และ prename
เป็นทั้งลิงก์สัญลักษณ์ที่แก้ไขเป็นไบนารีที่เรียกว่า file-rename
ดังนั้นบน Manjaro คำสั่งคุณจะต้องใช้ perl-rename
และใน Fedora มันคือ prename
บน Ubuntu คุณสามารถใช้ rename
หรือ prename
ในการติดตั้ง Perl เปลี่ยนชื่อบน Ubuntu คุณต้องพิมพ์:
sudo apt ติดตั้ง เปลี่ยนชื่อ
บน Fedora คำสั่งคือ:
sudo dnf ติดตั้ง prename
บน Manjaro แพ็คเกจเรียกว่า perl-rename
sudo pacman -Sy perl-เปลี่ยนชื่อ
ตรวจสอบให้แน่ใจว่าคุณใช้คำสั่งที่เหมาะสมสำหรับการแจกจ่ายของคุณ หากคุณต้องการทำงานผ่านตัวอย่าง
ขั้นตอนแรกด้วยการเปลี่ยนชื่อ
คำสั่ง rename
ใช้นิพจน์ทั่วไปของ Perl และนำไปใช้กับไฟล์หรือไดเร็กทอรี หรือกลุ่มของไฟล์หรือไดเร็กทอรี
ในไดเร็กทอรีของเรา เรามีไดเร็กทอรีอื่นๆ
ลส
ชื่อของพวกมันมีทั้งตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ และตัวพิมพ์เล็กผสมกัน เราสามารถแปลงทั้งหมดเป็นตัวพิมพ์เล็กด้วยนิพจน์ที่เหมาะสม
เปลี่ยนชื่อ 'y/AZ/az/' *
ลส
ขณะนี้ไดเร็กทอรีทั้งหมดเป็นตัวพิมพ์เล็ก ไม่ว่าก่อนหน้านี้จะเป็นตัวพิมพ์ใหญ่ทั้งหมด หรือมีตัวพิมพ์ใหญ่แบบคี่
เวทมนตร์ทั้งหมดมีอยู่ในนิพจน์ นิพจน์ถูกห่อด้วยเครื่องหมายคำพูดเดี่ยว “ '
“ นี่คือสิ่งที่คำสั่งทั้งหมดหมายถึง
- y : นี่หมายถึงการค้นหาอักขระใดๆ ในช่วงแรกของอักขระ และแทนที่อักขระที่เกี่ยวข้องจากอักขระช่วงที่สอง
- /AZ/az/ : ช่วงแรกคือตัวอักษรทั้งหมดตั้งแต่ "A" ถึง "Z" และช่วงที่สองคืออักขระทั้งหมดตั้งแต่ "a" ถึง "z"
- * : เครื่องหมายดอกจันหมายถึงใช้กับไดเร็กทอรีทั้งหมด
กล่าวอีกนัยหนึ่ง คำสั่งอ่านว่า "สำหรับไดเร็กทอรีทั้งหมด ให้สลับอักษรตัวพิมพ์ใหญ่สำหรับอักษรตัวพิมพ์เล็กที่เทียบเท่ากัน"
เห็นได้ชัดว่าคุณสามารถเปลี่ยนชื่อไดเร็กทอรีเดียวด้วย rename
แม้ว่ามันจะใช้การเกินกำลังก็ตาม คุณจะใช้ mv
ได้เร็วขึ้น
เปลี่ยนชื่อ 's/gamma/epsilon-2/' *
ลส
“s” ในนิพจน์นี้หมายถึงการแทนที่ จะตรวจสอบแต่ละไดเร็กทอรีเพื่อดูว่าชื่อ "gamma" หรือไม่ หากใช่ จะแทนที่ด้วย “epsilon-2” ระวังด้วยว่าสิ่งนี้จะตรงกับไดเร็กทอรีที่เรียกว่า "gamma-zeta" เช่นเปลี่ยนชื่อเป็น "epsilon-2-zeta"
เราสามารถหลีกเลี่ยงสิ่งนี้ได้โดยการเพิ่มอักขระเริ่มต้นของสตริง “ ^
” และจุดสิ้นสุดของ อักขระเมตา ของสตริง “ $
” ลงในประโยคแรกของนิพจน์
ลส
เปลี่ยนชื่อ 's/^gamma$/epsilon-2/' *
ลส
ซึ่งจะทำให้ไดเร็กทอรี "epsilon-2" ไม่ถูกแตะต้อง
ใช้เปลี่ยนชื่อด้วยคำสั่งอื่นๆ
เราสามารถใช้คำสั่งอื่นเพื่อค้นหาไดเร็กทอรีที่เราต้องการ rename
หากเรามีชุดของไดเร็กทอรีที่ซ้อนกันและเราต้องการเปลี่ยนชื่อที่ลงท้ายด้วย "-old" เพื่อให้ลงท้ายด้วย "-archive" เราสามารถทำได้โดยใช้ find
และ xargs
เราจำเป็นต้องใช้ xargs
เนื่องจากการ rename
ไม่รับอินพุตแบบไปป์ คำสั่ง xargs
เอาชนะปัญหานั้นด้วยการยอมรับอินพุตที่ไปป์และเพิ่มไปยังบรรทัดรับคำสั่งของคำสั่งอื่นเป็นพารามิเตอร์บรรทัดคำสั่ง
คำสั่งของเรามีลักษณะดังนี้:
หา . -deep -type d -name "*-เก่า" | xargs -r เปลี่ยนชื่อ "s/old$/archive/"
- . : เราบอกให้ find เริ่มค้นหาในไดเร็กทอรีปัจจุบัน แน่นอนว่านี่อาจเป็นเส้นทางใดก็ได้
- -deep : ใช้การค้นหาเชิงลึกเป็นอันดับแรก ซึ่งหมายความว่าเนื้อหาของไดเรกทอรีย่อยที่ซ้อนกันอยู่ลึกกว่าจะได้รับการประมวลผลก่อนไดเรกทอรีที่สูงกว่า
- -type d : ค้นหาไดเร็กทอรี ไม่ใช่ไฟล์
- -name “*-old” : เบาะแสการค้นหา เรากำลังมองหาไดเร็กทอรีที่มีชื่อลงท้ายด้วย “-old”
- | : เรากำลังวางเอาต์พุตจาก find ลงในคำสั่ง
xargs
- xargs -r :
-r
(ไม่มีการรันถ้าว่าง) หมายถึงอย่ารันคำสั่งหากไม่มีไดเร็กทอรีที่ตรงกัน - เปลี่ยนชื่อ “s/old$/archive/” : คำสั่ง
rename
ที่จะเรียกใช้
โครงสร้างไดเร็กทอรีของเรามีลักษณะดังนี้ก่อนคำสั่ง
เราเรียกใช้คำสั่งของเรา:
และเราจะเห็นว่าไดเร็กทอรีที่ตรงกันทั้งหมดรวมถึงไดเร็กทอรีที่ซ้อนกันถูกเปลี่ยนชื่อ
ม้าสำหรับหลักสูตร
การเปลี่ยนชื่อไดเร็กทอรีไม่ต้องการอะไรมากไปกว่า mv
หากคุณต้องการแอปพลิเคชัน GUI คุณสามารถใช้เบราว์เซอร์ไฟล์ของคุณได้ หากคุณมีไดเร็กทอรีจำนวนมากที่ต้องเปลี่ยนชื่อ และโดยเฉพาะอย่างยิ่ง หากไดเร็กทอรีกระจัดกระจายอยู่ทั่วแผนผังไดเร็กทอรี คุณจะต้องใช้ความยืดหยุ่นในการ rename
ที่เกี่ยวข้อง: วิธีจัดการไฟล์จาก Linux Terminal: 11 คำสั่งที่คุณต้องรู้