Mam katalog /home/user/oldname
i chcę zmienić nazwę na /home/user/newname
. Jak mogę to zrobić w terminalu?
mv
lub rename
.
Mam katalog /home/user/oldname
i chcę zmienić nazwę na /home/user/newname
. Jak mogę to zrobić w terminalu?
mv
lub rename
.
Odpowiedzi:
mv /home/user/oldname /home/user/newname
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
.
--no-target-directory
( -T
) , aby uniknąć traktowania newname
jako katalogu docelowego.
mv
może wykonać dwie prace.
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ć -R
przed nazwą katalogu:
mv -R directory_name ~/Desktop
mv
na Ubuntu pochodzi z GNU coreutils. AFAICT nie ma -R
opcji ani nie jest konieczne podczas przenoszenia katalogu.
-T
. Zobacz @ bmaupin w odpowiedzi na jego zachowanie.
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:
/home/user/newname
nie istnieje, zmieni nazwę /home/user/oldname
na/home/user/newname
/home/user/newname
istnieje, przeniesie /home/user/oldname
się /home/user/newname
, tj/home/user/newname/oldname
Źródło: Jak zdecydować, że mv przenosi się do katalogu zamiast go zastępować?
mv -T $PWD/analisys $PWD/Analisys
zwraca 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_
.).
To gvfs-move
polecenie zmieni także nazwy plików i katalogów.
gvfs-move /home/user/oldname /home/user/newname
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.