Bagaimana cara mengganti nama direktori melalui baris perintah?


Jawaban:


737
mv /home/user/oldname /home/user/newname


Artikel keren. Itulah intinya.
Rafał Cieślak

77
Ini tidak akan berfungsi jika nama baru sudah direktori yang ada. Sebagai gantinya, itu akan memindahkan direktori lama di dalam yang baru.
cxrodgers

9
Jika nama direktori sama dengan huruf besar, Anda akan mendapatkan No such file or directory. Untuk menghindari ini, lakukan sesuatu seperti mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder.
DutGRIFF

9
@cxrodgers: pass --no-target-directory( -T) , untuk menghindari memperlakukan newnamesebagai direktori target.
jfs

123

mv dapat melakukan dua pekerjaan.

  1. Itu dapat memindahkan file atau direktori
  2. Itu dapat mengganti nama file atau direktori

Untuk hanya mengganti nama file atau direktori ketik ini di Terminal:

mv old_name new_name 

dengan ruang antara nama lama dan baru.

Untuk memindahkan file atau direktori, ketikkan ini di Terminal.

mv file_name ~/Desktop 

itu akan memindahkan file ke desktop.

Jika merupakan direktori, Anda harus menambahkan -Rsebelum nama direktori:

mv -R directory_name ~/Desktop

3
mvdi Ubuntu adalah dari GNU coreutils. AFAICT tidak memiliki -Ropsi, juga tidak diperlukan saat memindahkan direktori.
arielf

-r bahkan tidak berfungsi
user1735921

Opsi yang benar adalah -T. Lihat jawaban @ bmaupin untuk perilakunya.
kronometrik

39
mv -T /home/user/oldname /home/user/newname

Itu akan mengubah nama direktori jika tujuan tidak ada atau jika ada tetapi kosong. Kalau tidak, itu akan memberi Anda kesalahan.

Jika Anda melakukan ini sebagai gantinya:

mv /home/user/oldname /home/user/newname

Satu dari dua hal akan terjadi:

  • Jika /home/user/newnametidak ada, itu akan berganti nama /home/user/oldnamemenjadi/home/user/newname
  • Jika /home/user/newnameada, itu akan pindah /home/user/oldnameke /home/user/newname, yaitu/home/user/newname/oldname

Sumber: Bagaimana memutuskan bahwa mv pindah ke direktori daripada mengganti direktori?


Tidak berfungsi jika Anda ingin menggunakan huruf besar nama direktori dalam sistem file case-insensitive (kemungkinan pada MacOS). mv -T $PWD/analisys $PWD/Analisyskembali mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file. Saya mengatasi ini dengan menggunakan nama perantara (yaitu analisys_).
basilikode

Perintah ini mungkin tidak berhasil karena keterbatasan sistem file, tetapi dari perspektif lain berhasil menafsirkan niat Anda (mengubah nama direktori, tidak memindahkannya) :)
bmaupin

Apakah kamu mencoba ini?
Mahmoud S. Marwad

5

Jika Anda ingin mengganti nama direktori pada level Anda di sistem file (mis., Anda berada di direktori home Anda dan ingin mengganti nama direktori yang juga ada di direktori home Anda):

mv Directory ./NewNameDirectory

4

Ini gvfs-moveperintah juga akan mengubah nama file dan direktori.

gvfs-move /home/user/oldname /home/user/newname

3

gvfs-rename akan mengganti nama direktori juga. Ini akan memberikan kesalahan jika direktori dengan nama baru sudah ada. Satu-satunya batasan adalah bahwa Anda tidak dapat menggunakan jalur dengan nama folder. Begitu

gvfs-rename /home/boo /home/boo-the-dog 

tidak akan bekerja, tetapi

cd /home 
gvfs-rename boo boo-the-dog 

akan bekerja. Tidak berguna seperti mv -T tetapi saya membaca di man bahwa itu dimaksudkan untuk operasi jaringan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.