Wiem, jak zmienić nazwę plików w Uniksie:
$ mv ~/folder/subfolder/file.txt ~/folder/subfolder/file.sh
^-------this part------^ ^------this part-------^
~/folder/subfolder/file
Dwukrotne powtórzenie zajmuje zbyt dużo czasu .
Czy jest szybszy sposób?
rename
.rename
jest to lepsze rozwiązanie, ponieważrename
nigdy nie proś o zastąpienie istniejącego pliku, czy nie.Możesz także użyć
rename
(część pakietu util-linux).Aby uzyskać więcej informacji, zobacz stronę man dotyczącą zmiany nazwy .
źródło
{a,b}
funkcjonalności powłok .rename
jest to zupełnie inny program oparty na perlu. Tam byś użyłrename 's/txt$/sh/' ~/folder/subfolder/file.txt
.mmv
.Wszystkie powyższe są dobre. Działa to również:
źródło
sudo
część.sudo
?sudo
że interpretuje~
jako katalog główny root.sudo
mv
cd
sudo
(
Nie. Musisz podać pełną ścieżkę do pliku, aby zmienić jego nazwę. Jedyną alternatywą jest przejście do folderu docelowego przed uruchomieniem
mv
:Alternatywnie możesz napisać małą funkcję, która zmienia nazwę pliku w katalogu docelowym. Na przykład dodaj te wiersze do pliku inicjalizacji powłoki (
~/.bashrc
jeśli używaszbash
):Następnie otwórz nowy terminal lub po prostu uruchom,
source ~/.bashrc
aby ponownie odczytać plik init i możesz:źródło
lmv()
funkcji. Nie wiedziałem tego :)Po prostu, aby rozszerzyć użyteczność odpowiedzi cuonglm (NIE przyjmować uznania, ponieważ uwielbiam jego rozwiązanie), a jego odpowiedź jest poprawna.
Przypadek użycia polega na tym, że często chcemy przenieść plik w zdalną lokalizację (prawdziwy problem), np. /Folder/subfolder/configFile.dat TO configFile.dat.orig
Ta forma polecenia dodaje rozszerzenie pliku (nie zastępuje oryginalnego rozszerzenia)
Wyjaśnienie: „{, .orig}” oznacza zastąp (nic) na końcu nazwy pliku ((coś) „.orig”
LUB, aby usunąć rozszerzenie pliku (odwróć nazwę)
Uwaga: Nadal w temacie „Najszybszy sposób zmiany nazwy plików bez ponownego wpisywania ścieżki katalogu”
źródło
Tak. Jeśli używasz
bash
, robiszsudo pushd ~/folder/subfolder/ && sudo mv ./file.txt ./file.sh && popd
.Co jest w rzeczywistości większe i może się nie powieść, jeśli podczas wykonywania utracisz uprawnienia dostępu do oryginalnego katalogu
popd
.źródło
pushd
ipopd
tutaj? Jak to jest lepsze niżcd ~/folder/subfolder/ && sudo mv file.txt file.sh
?pushd
popd
jest użyciecd
i powrótcd -
.popd
jest lepszy niżcd ../../
, gdy jest dostępny.(cd /path/to/there && mv x y)
wtedy (z podpowłoką)sudo
wcześniejpushd
. Tak więc powinno być pełne poleceniepushd ...dir && sudo mv old new && popd
. Alternatywnie można to zrobić,(cd ...dir; sudo mv old new)
ponieważ uruchomienie w podpowłoce automatycznie zajmie się zmianami katalogu.