Jak zmienić nazwę katalogu za pomocą wiersza poleceń?


Odpowiedzi:


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


Fajny artykuł. Właśnie o to chodzi.
Rafał Cieślak,

76
To nie zadziała, jeśli nowa nazwa jest już istniejącym katalogiem. Zamiast tego przeniesie stary katalog do nowego.
cxrodgers

9
Jeśli nazwa katalogu jest taka sama jak wielkie litery, otrzymasz No such file or directory. Aby tego uniknąć, zrób coś takiego mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder.
DutGRIFF,

9
@cxrodgers: pass --no-target-directory( -T) , aby uniknąć traktowania newnamejako katalogu docelowego.
jfs

123

mv może wykonać dwie prace.

  1. Może przenosić pliki lub katalogi
  2. Może zmieniać nazwy plików lub katalogów

Aby zmienić nazwę pliku lub katalogu, wpisz go w Terminalu:

mv old_name new_name 

ze spacją między starymi i nowymi nazwami.

Aby przenieść plik lub katalog, wpisz go w Terminalu.

mv file_name ~/Desktop 

przeniesie plik na pulpit.

Jeśli jest to katalog, który powinieneś dodać -Rprzed nazwą katalogu:

mv -R directory_name ~/Desktop

3
mvna Ubuntu pochodzi z GNU coreutils. AFAICT nie ma -Ropcji ani nie jest konieczne podczas przenoszenia katalogu.
arielf

-r nawet nie działa
użytkownik1735921

Prawidłowa opcja to -T. Zobacz @ bmaupin w odpowiedzi na jego zachowanie.
chronometr

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

Spowoduje to zmianę nazwy katalogu, jeśli miejsce docelowe nie istnieje lub jeśli istnieje, ale jest puste. W przeciwnym razie pojawi się błąd.

Jeśli zrobisz to zamiast tego:

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

Stanie się jedna z dwóch rzeczy:

  • Jeśli /home/user/newnamenie istnieje, zmieni nazwę /home/user/oldnamena/home/user/newname
  • Jeśli /home/user/newnameistnieje, przeniesie /home/user/oldnamesię /home/user/newname, tj/home/user/newname/oldname

Źródło: Jak zdecydować, że mv przenosi się do katalogu zamiast go zastępować?


Nie działa, jeśli chcesz używać wielkich liter w nazwie katalogu w systemie plików bez rozróżniania wielkości liter (prawdopodobnie w systemie MacOS). mv -T $PWD/analisys $PWD/Analisyszwraca mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file. Obejrzałem to, używając nazwy pośredniej (tj analisys_.).
basilikode

Komenda mogła się nie powieść z powodu ograniczeń systemu plików, ale z innej perspektywy udało się zinterpretować twoje zamiary (zmiana nazwy katalogu, a nie przeniesienie go) :)
bmaupin

próbowałeś tego?
Mahmoud S. Marwad

5

Jeśli chcesz zmienić nazwę katalogu na swoim poziomie w systemie plików (np. Jesteś w katalogu domowym i chcesz zmienić nazwę katalogu, który również znajduje się w katalogu domowym):

mv Directory ./NewNameDirectory

4

To gvfs-movepolecenie zmieni także nazwy plików i katalogów.

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

3

gvfs-rename zmieni również nazwy katalogów. Daje błąd, jeśli katalog o nowej nazwie już istnieje. Jedynym ograniczeniem jest to, że nie można użyć ścieżki z nazwą folderu. Więc

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

nie zadziała, ale

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

będzie działać. Nie tak przydatny jak mv-T, ale przeczytałem w człowieku, że był przeznaczony do operacji sieciowych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.