Neulich haben wir gelernt, wie man cd und ls in einem Befehl macht . Heute werden wir einen weiteren coolen Bash-Tipp sehen - cp
oder mv
und cd
in einem Befehl. Bedeutung - wir kopieren oder verschieben Dateien/Verzeichnisse von einem Ort zum anderen und cd
sofort in das Zielverzeichnis. Natürlich können wir dies mit einem Einzeiler tun Befehl. Beispielsweise ist es möglich, Dateien/Verzeichnisse in ein anderes Verzeichnis zu kopieren oder zu verschieben und in das Zielverzeichnis zu wechseln, indem der Befehl verwendet wird:
cp source destination && cd destination
Oder,
mv source destination && cd destination
Allerdings werden wir das jetzt nicht tun. Wir verwenden eine einfache Bash-Funktion um den cp- oder mv-Befehl und den cd-Befehl zu kombinieren und als einen einzigen Befehl auszuführen. Dieser Trick sollte auf allen Unix-ähnlichen Systemen funktionieren, die BASH unterstützen.
Wie cp oder mv und cd in einem Befehl ausgeführt werden
Öffnen Sie Ihre ~/.bashrc
Datei in Ihrem bevorzugten Editor:
$ nano ~/.bashrc
Fügen Sie am Ende die folgenden Zeilen hinzu:
#cp and cd in one command cpcd (){ if [ -d "$2" ];then cp $1 $2 && cd $2 else cp $1 $2 fi } #mv and cd in one command mvcd (){ if [ -d "$2" ];then mv $1 $2 && cd $2 else mv $1 $2 fi }
Speichern und schließen Sie die Datei. Führen Sie den folgenden Befehl aus, um die Änderungen zu übernehmen.
$ source ~/.bashrc
Kopieren oder verschieben Sie nun Dateien/Verzeichnisse von einem Ort zum anderen und Sie landen automatisch am Zielort.
Lassen Sie uns einige Beispielverzeichnisse und -dateien erstellen.
$ mkdir dir1 dir2
$ touch file1 file2
Kopieren Sie nun die Datei1 nach dir1 mit dem Befehl:
$ cpcd file1 dir1
$ pwd /home/sk/dir1
Wie Sie sehen, kopiert der obige Befehl die file1
zu dir1
und dann automatisch cd
in das dir1
Ort.
Als nächstes verschieben Sie file2
nach dir2
mit Befehl:
$ cd
$ mvcd file2 dir2
$ pwd /home/sk/dir2
Dieser Befehl kopiert file2
nach dir2
und es automatisch cd
in das dir2
Ort.
Beispielausgabe:
Hoffe das hilft.
Andere Bash-Tipps
- Dateien umbenennen, ohne zweimal den vollständigen Namen in Linux einzugeben
- Eine Bash-Funktion zum Extrahieren von Dateiarchiven verschiedener Typen