ผมได้มีไดเรกทอรีและฉันต้องการที่จะเปลี่ยนชื่อเป็น/home/user/oldname
/home/user/newname
ฉันจะทำสิ่งนี้ได้อย่างไรในเทอร์มินัล
mv
rename
ผมได้มีไดเรกทอรีและฉันต้องการที่จะเปลี่ยนชื่อเป็น/home/user/oldname
/home/user/newname
ฉันจะทำสิ่งนี้ได้อย่างไรในเทอร์มินัล
mv
rename
คำตอบ:
mv /home/user/oldname /home/user/newname
No such file or directory
ถ้าชื่อไดเรกทอรีเดียวกันมีมูลค่าคุณจะได้รับ mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder
เพื่อหลีกเลี่ยงนี้ทำสิ่งที่ชอบ
--no-target-directory
( -T
)เพื่อหลีกเลี่ยงการnewname
ถือเป็นไดเรกทอรีเป้าหมาย
mv
สามารถทำงานสองอย่าง
หากต้องการเปลี่ยนชื่อไฟล์หรือไดเรกทอรีให้พิมพ์ใน Terminal:
mv old_name new_name
มีช่องว่างระหว่างชื่อเก่าและใหม่
หากต้องการย้ายไฟล์หรือไดเรกทอรีให้พิมพ์สิ่งนี้ในเทอร์มินัล
mv file_name ~/Desktop
มันจะย้ายไฟล์ไปยังเดสก์ท็อป
หากเป็นไดเรกทอรีคุณควรเพิ่ม-R
ก่อนชื่อไดเรกทอรี:
mv -R directory_name ~/Desktop
mv
บน Ubuntu มาจาก GNU coreutils AFAICT ไม่มี-R
ตัวเลือกและไม่จำเป็นเมื่อย้ายไดเรกทอรี
-T
ตัวเลือกที่ถูกต้องคือ ดูคำตอบ @ bmaupin สำหรับพฤติกรรมของมัน
mv -T /home/user/oldname /home/user/newname
จะเปลี่ยนชื่อไดเรกทอรีหากปลายทางไม่มีอยู่หรือมีอยู่ แต่ว่างเปล่า มิฉะนั้นจะทำให้คุณมีข้อผิดพลาด
หากคุณทำสิ่งนี้แทน:
mv /home/user/oldname /home/user/newname
หนึ่งในสองสิ่งจะเกิดขึ้น:
/home/user/newname
ไม่มีอยู่ระบบจะเปลี่ยนชื่อ/home/user/oldname
เป็น/home/user/newname
/home/user/newname
มีอยู่มันจะย้าย/home/user/oldname
ไปที่/home/user/newname
เช่น/home/user/newname/oldname
แหล่งที่มา: วิธีการตัดสินใจที่ mv ย้ายไปยังไดเรกทอรีมากกว่าการแทนที่ไดเรกทอรี?
mv -T $PWD/analisys $PWD/Analisys
mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file
ฉันแก้ไขสิ่งนี้โดยใช้ชื่อกลาง (เช่นanalisys_
)
หากคุณต้องการเปลี่ยนชื่อไดเรกทอรีที่ระดับของคุณในระบบไฟล์ (เช่นคุณอยู่ที่โฮมไดเร็กตอรี่ของคุณและต้องการเปลี่ยนชื่อไดเรกทอรีที่อยู่ในโฮมไดเร็กตอรี่ของคุณด้วย):
mv Directory ./NewNameDirectory
gvfs-move
คำสั่งนี้จะเปลี่ยนชื่อไฟล์และไดเรกทอรีด้วย
gvfs-move /home/user/oldname /home/user/newname
gvfs-rename จะทำการเปลี่ยนชื่อไดเรกทอรีด้วย มันจะให้ข้อผิดพลาดหากไดเรกทอรีที่มีชื่อใหม่มีอยู่แล้ว ข้อ จำกัด เพียงอย่างเดียวคือคุณไม่สามารถใช้พา ธ ที่มีชื่อโฟลเดอร์ได้ ดังนั้น
gvfs-rename /home/boo /home/boo-the-dog
จะไม่ทำงาน แต่
cd /home
gvfs-rename boo boo-the-dog
จะทำงาน. ไม่เป็นประโยชน์เท่า mv -T แต่ฉันอ่านด้วยตัวเองว่ามันมีความหมายสำหรับการดำเนินงานเครือข่าย