Ich gehe ständig 'cd ../../../../'. Gibt es einen Befehl / Alias, der mich 'cmd 4' gehen lassen könnte und ich würde 4 Verzeichnisse zurückerhalten?
alias cmd5 = "cd ../../../../../"
Ich gehe ständig 'cd ../../../../'. Gibt es einen Befehl / Alias, der mich 'cmd 4' gehen lassen könnte und ich würde 4 Verzeichnisse zurückerhalten?
alias cmd5 = "cd ../../../../../"
Antworten:
Fügen Sie dies in Ihre ~/.bashrc
:
cdup() {
levels=${1-1}
while ((levels--)); do
cd ..
done
}
(Der Name cdup
stammt vom entsprechenden FTP-Befehl, nur zu Ihrer Information.)
Mir wurde beigebracht, unter solchen Umständen 'pushd' und 'popd' zu verwenden.
Geben Sie beispielsweise "pushd" ein. und dann 'cd / home'. Geben Sie nun 'popd' ein und Sie sind wieder an der Stelle, an der Sie begonnen haben.
'pushd' / 'popd' ist ein Stack. Sie können so viele Verzeichnisse verschieben, wie Sie möchten. Es ist jedoch immer das letzte Mal aktiv, wenn Sie popd ausführen.
Sicher warum nicht:
up () { [$ # = 0] && cd .. && return [$ 1 = 0] && return cd .. && up $ (($ 1 - 1)) }
up 500
. :-)
Schnell und dreckig:
cmd () { dir=.; for i in $(seq 1 $1); do dir=$dir/..; done; pushd $dir; }
Formuliert, um das Verzeichnis nur einmal zu ändern.
Möglicherweise möchten Sie die Verwendung pushd
und popd
das Setzen von Ortsmarkierungen untersuchen und von jedem Verzeichnis, in das Sie gewechselt haben, problemlos dorthin zurückkehren.
Sie können auch eine Variable mit dem Namen eines Verzeichnisses festlegen, das Sie häufig verwenden, und dort CD:
MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'
Ich benutze Autojump, mit dem ich Folgendes eingeben kann :
j h
>> /home/cjulien
j et
>> /etc
es kann aus deinen Gewohnheiten lernen und ist sehr leicht (und macht süchtig;))
Zwei Gedanken, die für Sie nützlich sein könnten:
cd -
wechsle zurück in das letzte Verzeichnis, in dem du warst. Ich benutze dies die ganze Zeit, um tief in meinem Codebaum zum Wurzelverzeichnis zurückzukehren ... obwohl das nur funktioniert, wenn du es in einem einzigen Verzeichnis abgelegt hast Veränderung.
cdd old new
Dies war eine Skriptfunktion, die ich in der Vergangenheit geschrieben hatte, um mich zwischen ähnlichen Bäumen zu bewegen. Grundsätzlich hat es zwei Argumente und einen regulären Ausdruck auf Ihrem Weg, ideal für die Bewegung zwischen Zweigen und so weiter. Wenn Sie beispielsweise in ~ / bzr / web / trunk / pfad / zu / feature wären und nach ~ / bzr / web / feature-branch / pfad / zu / feature gelangen müssten, würden Sie dies tun cdd trunk feature-branch
. Die Implementierung, die ich hatte, war in einer archaischen Shell-Sprache unter AIX, aber sie war ziemlich trivial, sollte also einfach in der Shell der Wahl zu implementieren sein, wenn Sie sie benötigen. Für uns war es sehr nützlich, weil die Struktur so aussah: ... / {product} / {version} / {release} / {src, bld, dbg, pkg, tst} / {component} / ... so bewegend in diesem Baum wurde ziemlich schnell verrückt.
ls
? Sicher meinst ducd
?