Das mache ich oft
$ mkdir foo
$ cd foo
Dies funktioniert wie ein einzelner Befehl, ist jedoch ein weiterer Tastendruck und spart keine Zeit.
$ mkdir foo && cd foo
Gibt es dafür eine Abkürzung?
Bearbeiten
Mit der Hilfe unten scheint dies die eleganteste Antwort zu sein.
# ~/.bashrc
function mkcd {
if [ ! -n "$1" ]; then
echo "Enter a directory name"
elif [ -d $1 ]; then
echo "\`$1' already exists"
else
mkdir $1 && cd $1
fi
}
command-line
bash
terminal
shortcuts
macek
quelle
quelle
mkdir
wenn Sie siecommand mkdir $1
nicht nurmkdir $1
im Funktionskörper verwenden.Antworten:
Ich bin kein Linux- / Bash-Experte, aber versuchen Sie, dies in Ihre Liste aufzunehmen
.bashrc
.PS Danke an Dennis für die Verwendung
command mkdir
.quelle
`which mkdir`
Verwenden Sie stattdessen einfachcommand mkdir
.man command
- kannst du mich auf eine Referenz verweisen? (Ich kann herausfinden, was es tut, aber escommand
wird im Handbuch von beschriebenbash
(in das es integriert ist; es ist kein separater Befehl). Sie könnten es auch versuchenhelp command
.Die
bash
,zsh
MuschelnWenn Sie nicht möchten, dass sich eine andere Funktion erinnert, und Bashismen nicht stören:
Die
$_
Befehlsvariable (Dollar-Unterstrich) bash enthält den neuesten Parameter. Wenn ein Benutzer also Folgendes in die Befehlszeileecho foo bar && echo $_ baz
eingeben würde, wäre die Ausgabe wie folgt:Die
fish
MuschelIn der Fischschale würde ich Folgendes eingeben:
Die Alt-Taste in Kombination mit der Aufwärts- oder Abwärtspfeiltaste durchläuft den Befehlsparameterverlauf.
quelle
zsh
auch.Für oh-my-zsh Benutzer:
$ take 'directory_name'
Referenz: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
quelle
type take
, dann wirst du bekommentake is a shell function from /home/username/.oh-my-zsh/lib/functions.zsh
. vi die datei bekommst du dannfunction take() { mkdir -p $@ && cd ${@:$#} }
Wie wäre es mit:
Es ist ein bisschen einfacher, als && zu verwenden und die Antworten von quack quixote und kzh zu kombinieren.
quelle
&&
ist, dasscd
nicht ausgeführt wird, wenn dermkdir
Befehl fehlschlägtSie können so etwas ausprobieren:
Speichern Sie dieses Skript an einem Ort, der sich in Ihrem Pfad befindet, z. B. / usr / local / bin oder ~ / bin (Sie müssen diesen letzten in Ihren Pfad in Ihrer ~ / .profile-Datei einfügen). Dann können Sie es einfach anrufen.
quelle
cd
im Kontext der Ausführung des~/bin/mkcd
Skripts, nicht der Aufrufer des Skripts.quelle
Hier ist eine einfache Funktion, die ich in meine
~/.config/fish/config.fish
Datei eingefügt habe und die diese Aufgabe erfüllt:Das
-pv
Tag ermöglicht die Erstellung von Verzeichnissen mit Unterverzeichnissen.quelle
Abhängig vom gewünschten Ergebnis, ob das Verzeichnis bereits existiert.
Fehler, wenn das Verzeichnis bereits vorhanden ist
Wechseln Sie das Verzeichnis trotzdem
Usage mkcd some / path / to / my / dir
quelle
Ich habe festgestellt, dass die folgende Funktion nur ein Verzeichnis erstellen kann. Wenn ich gleichzeitig Unterverzeichnisse erstellen möchte, funktioniert dies nicht:
Also habe ich es geändert und jetzt funktioniert es super!
quelle