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.