คุณสามารถเปลี่ยนชื่อไฟล์ (ไดเรกทอรีหรืออะไรก็ตาม) โดยใช้ความรู้เฉพาะของ inode ที่ใช้find
แต่ถ้า (a) ระบบไฟล์ที่มีอยู่นั้นไม่ได้ถูกเมาท์หรือถ้า (b) มีระบบไฟล์อื่นติดตั้งอยู่ในไดเรกทอรีที่ไม่ว่างเปล่า ไฟล์ที่คุณสนใจระบบไม่สามารถเข้าถึงไฟล์ของคุณได้ ในกรณี (a) คุณต้องติดตั้งระบบไฟล์ก่อนที่คุณจะสามารถทำอะไรกับเนื้อหารวมถึงการเปลี่ยนชื่อและในกรณี (b) คุณจะต้องยกเลิกการต่อเชื่อมระบบไฟล์ที่ติดตั้ง "ที่ด้านบนของ" ไดเรกทอรีที่มี ไฟล์ที่คุณต้องการเปลี่ยนชื่อ ดูเหมือนว่าคุณกำลังถามเกี่ยวกับกรณีและปัญหา (b)
ถ้าผมเข้าใจคุณอย่างถูกต้องคุณพยายามที่จะทำให้เก่าของคุณ/home
ไดเรกทอรี (ซึ่งตั้งอยู่บนพาร์ทิชันรากของคุณ) /home
ที่สามารถเข้าถึงได้ในขณะที่ยังคงใช้พาร์ทิชันใหม่ของคุณติดตั้งที่ ถ้านั่นคือสิ่งที่คุณต้องการทำต่อไปนี้:
ปิดไฟล์ทั้งหมดและออกจากระบบ จากนั้นเข้าสู่ระบบในฐานะroot
(ใช้เทอร์มินัลเสมือนสำหรับสิ่งนี้ - กด Ctrl-Alt-F2) เรียกใช้สิ่งต่อไปนี้:
umount /home
mv /home /home-old
mkdir /home
mount -a
ls /home
ls /home-old
หากทุกอย่างดีออกจากระบบและกลับเข้าสู่ระบบในฐานะตัวคุณเองและทุกอย่างควรจะดี
อนึ่งคำสั่งในการเปลี่ยนชื่อไฟล์โดยใช้ความรู้เฉพาะของ inode (สมมติว่าไฟล์อยู่ในไดเรกทอรีปัจจุบัน) คือ:
find . -maxdepth 1 -inum 123456789 -exec mv {} mynewname \;
123456789
แน่นอนหมายเลขไอโหนดอยู่ที่ไหน (โปรดทราบว่าfind
กำหนดชื่อไฟล์และเส้นทางของมันและส่งผ่านข้อมูลนี้ไปmv
ยังไม่มีทางที่จะเปลี่ยนชื่อไฟล์โดยไม่เกี่ยวข้องกับชื่อไฟล์ที่มีอยู่ในทางใดทางหนึ่ง แต่ถ้ามันเป็นเพียงที่คุณไม่รู้จักชื่อไฟล์มันค่อนข้าง ง่าย.)