Ich kann Dateien in Unix umbenennen:
$ mv ~/folder/subfolder/file.txt ~/folder/subfolder/file.sh
^-------this part------^ ^------this part-------^
Das zweimalige Wiederholen dauert zu lange ~/folder/subfolder/file
.
Gibt es einen schnelleren Weg?
rename
.rename
es eine bessere Lösung ist, weil Sierename
nie gefragt werden, ob Sie die vorhandene Datei überschreiben möchten oder nicht.Sie können auch
rename
(Teil des Pakets util-linux) verwenden.Weitere Informationen finden Sie auf der Manpage zum Umbenennen .
quelle
{a,b}
Funktionalität von Shells zu verlassen .rename
handelt es sich um ein völlig anderes, auf Perl basierendes Programm. Dort würdest du verwendenrename 's/txt$/sh/' ~/folder/subfolder/file.txt
.mmv
.Alle oben genannten sind gut. Das würde auch funktionieren:
quelle
sudo
Teil entfernen .sudo
?sudo
es~
als Basisverzeichnis des Stamms interpretiert wird .sudo
dasmv
, aber nichtcd
. Sehen Sie, warum CD ist eine Shell eingebaut. Und Sie können nichtsudo
die(
Nein. Um die Datei umzubenennen, müssen Sie den vollständigen Pfad angeben. Die einzige Alternative besteht darin, in den Zielordner zu wechseln, bevor Sie Folgendes ausführen
mv
:Alternativ können Sie eine kleine Funktion schreiben, die die Datei im Zielverzeichnis umbenennt. Fügen
~/.bashrc
Sie Ihrer Shell-Initialisierungsdatei beispielsweise die folgenden Zeilen hinzu ( falls Sie verwendenbash
):Öffnen Sie dann ein neues Terminal oder führen
source ~/.bashrc
Sie das Programm aus, um die Init-Datei erneut zu lesen.quelle
lmv()
Funktion. Ich wusste das nicht :)Nur um die Nützlichkeit der Antwort von cuonglm zu erweitern (keine Anerkennung, da ich seine Lösung liebe) und seine Antwort ist richtig.
Der Anwendungsfall ist, dass wir häufig eine Datei an einem entfernten Ort (das eigentliche Problem) speichern möchten, z. B. /folder/subfolder/configFile.dat TO configFile.dat.orig
Diese Form des Befehls fügt eine Dateierweiterung hinzu (ersetzt nicht die ursprüngliche Erweiterung)
Erklärt: "{, .orig}" bedeutet, dass am Ende des Dateinamens (nichts) durch (etwas) ".orig" ersetzt wird.
ODER zum Entfernen einer Dateierweiterung (Umbenennen rückgängig machen)
Hinweis: Noch am Thema für "Schnellste Methode zum Umbenennen von Dateien ohne erneutes Eingeben des Verzeichnispfads"
quelle
Ja. Wenn Sie verwenden
bash
, tun Siesudo pushd ~/folder/subfolder/ && sudo mv ./file.txt ./file.sh && popd
.Welches ist eigentlich größer und kann fehlschlagen, wenn Sie Zugriffsberechtigungen auf das ursprüngliche Verzeichnis verloren haben, als Sie das getan haben
popd
.quelle
pushd
undpopd
hier? Wie ist das besser alscd ~/folder/subfolder/ && sudo mv file.txt file.sh
?pushd
popd
ist zu benutzencd
und zurückzukehrencd -
.popd
ist besser alscd ../../
, wenn verfügbar.(cd /path/to/there && mv x y)
dann (mit einer Unterschale)sudo
vorpushd
. So sollte der volle Befehl seinpushd ...dir && sudo mv old new && popd
. Alternativ könnte man dies tun,(cd ...dir; sudo mv old new)
da das Ausführen in der Subshell die Verzeichnisänderungen automatisch erledigt.