Bir dizini komut satırı üzerinden nasıl yeniden adlandırabilirim?


Yanıtlar:


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


Harika makale. Bu tam olarak nokta.
Rafał Cieślak

77
Yeni ad zaten var olan bir dizin ise bu işe yaramaz. Bunun yerine, eski dizini yenisinin içine taşıyacaktır.
cxrodgers

9
Dizin adı büyük harfle aynıysa, alırsınız No such file or directory. Bundan kaçınmak için böyle bir şey yapın mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder.
DutGRIFF

9
@cxrodgers: pass --no-target-directory( -T) , newnamehedef dizin olarak değerlendirilmekten kaçınmak için .
jfs

123

mv iki işi yapabilir.

  1. Dosyaları veya dizinleri taşıyabilir
  2. Dosyaları veya dizinleri yeniden adlandırabilir

Bir dosyayı veya dizini yeniden adlandırmak için Terminal'e şunu yazın:

mv old_name new_name 

eski ve yeni isimler arasındaki boşlukla.

Bir dosyayı veya dizini taşımak için bunu Terminal'e yazın.

mv file_name ~/Desktop 

dosyayı masaüstüne taşıyacaktır.

-RDizin adından önce eklemeniz gereken bir dizinse :

mv -R directory_name ~/Desktop

3
mvUbuntu’da GNU coreutils’ten geliyor. AFAICT bir -Rseçeneğe sahip değildir ve bir dizini taşırken de gerekli değildir.
arielf

-r bile çalışmıyor
user1735921 26:16

Doğru seçenek -T. @ Bmaupin en Bkz cevap davranışlarından ötürü.
kronometrik

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

Hedef bulunmuyorsa veya varsa dizini yeniden adlandırır ancak boş. Aksi takdirde size bir hata verecektir.

Bunu yerine yaparsanız:

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

İki şeyden biri olacak:

  • Eğer /home/user/newnameyoksa, adını değiştirir /home/user/oldname./home/user/newname
  • Varsa /home/user/newname, /home/user/oldnameiçine /home/user/newname, yani/home/user/newname/oldname

Kaynak: mv'nin dizini değiştirmek yerine bir dizine taşınmasına nasıl karar verilir?


Dizin adını büyük / küçük harfe duyarlı olmayan bir dosya sisteminde (büyük olasılıkla MacOS'ta) büyük harf yapmak istiyorsanız çalışmaz. mv -T $PWD/analisys $PWD/Analisysdöner mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file. Ara bir ad kullanarak (yani analisys_) bu konuda çalıştım .
basilikode

Bu komut dosya sisteminin kısıtlı olmasından dolayı başarılı olmayabilir, ancak başka bir açıdan niyetlerinizi yorumlamada başarılı oldu (bir dizini yeniden adlandırma, taşımadan) :)
bmaupin

bunu denedin mi
Mahmoud S. Marwad

5

Dosya sistemindeki bir dizini yeniden adlandırmak istiyorsanız (örneğin, ana dizininizde ve aynı zamanda ana dizininizdeki bir dizini de yeniden adlandırmak istiyorsanız):

mv Directory ./NewNameDirectory

4

Bu gvfs-movekomut ayrıca dosyaları ve dizinleri yeniden adlandırır.

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

3

gvfs-rename, dizinleri de yeniden isimlendirir. Yeni adı olan bir dizin zaten varsa, hata verir. Tek sınırlama, klasör adında bir yol kullanamamanızdır. Yani

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

çalışmayacak, ama

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

çalışacak. Mv -T kadar kullanışlı değil ama erkekte ağ işlemleri için olduğunu okudum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.