Wenn ich ein Verzeichnis hinwollen up benutze ichgehen einige Verzeichnisse bis in Linux
cd ..
Aber wenn ich 7 Verzeichnisse hinwollen up ist es eine Möglichkeit, diese anderen zu tun, als nur sieben eingeben (7) mal cd ..
?
Wenn ich ein Verzeichnis hinwollen up benutze ichgehen einige Verzeichnisse bis in Linux
cd ..
Aber wenn ich 7 Verzeichnisse hinwollen up ist es eine Möglichkeit, diese anderen zu tun, als nur sieben eingeben (7) mal cd ..
?
cd ../../../../../../../
Auch eine weitere nützliche Navigations Spitze, wenn zum Beispiel können sagen, Sie halten aus einem Verzeichnis Schalt (nennen wir es A) zu einem anderen (nennen Sie es B), das sind 7 Verzeichnisse in Ihrem Fall.
Also, wenn Sie im Verzeichnis A sind.
A> cd ../../../../../../../
B> // Now you're in directory B and want to go back to A
B> cd -
Das ist richtig zurück in das Verzeichnis A. bewegen -
erweitert, um zum vorherigen Verzeichnis, das Sie in waren
'CD-' Befehl ist interessant. Gibt es für sie gleichwertige Windows? – RBT
Obwohl dies die "akzeptierte" Antwort ist, sehe ich, dass die Antwort von @ dav die robustere Lösung ist. Eine lange Liste von "../" ist sowohl belastend als auch fehleranfällig. Wenn Ihr Profil ein Alias-Skript zulässt, ist es besser skalierbar. Die Bash-Alias-Version behält auch die Unterstützung für "cd -" bei. – ZaydH
Sie können es tun, wie diese cd ../../../../../../../
Es gibt eine cool article über einige Hacks Sie anwenden können Sie die Navigation zu verbessern.
Hm, ich glaube nicht.
Aber man kann cd ../../../..
(und so weiter) statt 7 mal cd schreiben ..
for i in {1..7}; do cd ..; done
können Sie pushd .
verwenden sich an ein Verzeichnis zu erinnern und popd
, um zurück zu gehen.
Wenn es einen Befehl gibt, verwende ich viel, ich werde nur einen Alias machen.
könnten Sie
Typalias ..='cd ..'
alias ...='cd ../..'
Dann einfach ..
verwenden Sie können bis eine Ebene nach oben und ...
gehen zwei Ebenen zu gehen.
Hier ist eine leichte Verbesserung, die ich gefunden habe:
Normalerweise, wenn Sie wieder ein Verzeichnis mit cd gehen .. Sie nach vorn ein Verzeichnis am Ende gehen. Um diese Arbeit zu machen, müssen Sie Funktionen verwenden, anstatt Aliase, so statt:
alias ..=”cd ../”
alias ..2=”cd ../../”
können Sie:
..()
{
cd ../[email protected]
}
..2()
{
cd ../../[email protected]
}
jedoch danach mit, es wird schnell klar, dass Sie vermissen Befehl Abschluss für diese Funktion, so dass es weit weniger nützlich als es sein könnte. Also ging ich zurück und fügte meine eigenen Bash-Vervollständigungsfunktionen für diese Funktion hinzu, die in Ihre ~/.bashrc oder irgendeine Datei (zB ~/.bash_completion) eingefügt werden können, die von Ihrem ~/.bashrc aufgerufen wird, wenn Sie dies vermeiden möchten Unordnung. Hier ist der Abschlusscode:
_..()
{
local cur=../${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -d — $cur))
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=$(echo ${COMPREPLY[$i]} | sed -r ‘s/(\.\.\/)*//’)
done
}
complete -F _.. -o nospace -S/..
_..2()
{
local cur=../../${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -d — $cur))
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=$(echo ${COMPREPLY[$i]} | sed -r ‘s/(\.\.\/)*//’)
done
}
complete -F _..2 -o nospace -S/..2
Machen Sie Alias (in Ihnen ~ /.bashrc)
function cd_up() {
cd $(printf "%0.0s../" $(seq 1 $1));
}
alias 'cd..'='cd_up'
und Verwendung:
$ cd.. 7
UPD: Oder mächtige Variante machen, cd dir namen in aktuellem Pfad:
# cd up to n dirs
# using: cd.. 10 cd.. dir
function cd_up() {
case $1 in
*[!0-9]*) # if no a number
cd $(pwd | sed -r "s|(.*/$1[^/]*/).*|\1|") # search dir_name in current path, if found - cd to it
;; # if not found - not cd
*)
cd $(printf "%0.0s../" $(seq 1 $1)); # cd ../../../../ (N dirs)
;;
esac
}
alias 'cd..'='cd_up' # can not name function 'cd..'
Verwendung:
$ cd /home/user/documents/projects/reports/2014-10-01
$ cd.. proj
$ pwd
> /home/user/documents/projects
Sie können diese Lösung versuchen. Es ist eine Arbeit für mich in Ordnung:
#!/bin/bash
#this sctipt should take one parameter - number of steps. And do "cd" command step times.
# example usage: cd `cde 3`
NEW_PATH=$(pwd)
step="../"
upper=""
for i in seq $1
do
upper="$upper$step"
done
echo $upper
I alias in ~/.barsh Datei vorgenommen haben. Und das funktioniert gut für mich.
Beispiel, für drei Ordner.
$ cd `cde 3`
Sie könnten die folgende Funktion zu Ihrem .bashrc
hinzufügen:
# ~/.bashrc
up() {
for D in $(seq 1 $1);
do
cd ..
done
}
So ist die Nutzung würde einfach sein:
user ~ $ up 3
user/$
nicht erinnern Sie, wo ich kopiert diese Funktion, aber es funktioniert gut für mich (Sie können zum Beispiel .bashrc
Datei einfügen)
up() { local p= i=${1:-1}; while ((i--)); do p+=../; done; cd "$p$2" && pwd; }
z.B. Um 7 Verzeichnisse zu gehen, ist es notwendig, up 7
zu schreiben Diese nette Funktion unterstützt das Gehen in beide Richtungen.
Wenn Sie in /a/b/c/d dann 'bis 1' sind, werden Sie ergreifen, um /a/b/c, und so weiter. Das ist ziemlich Standard und in den meisten anderen Antworten abgedeckt.
Jetzt für den speziellen Teil; Negative Zahlen zu verwenden bringt Sie aus der anderen Richtung. Also, wenn Sie in /a/b/c/d sind, wird 'up -1' Sie zu /a und so weiter bringen.
function up() {
UP=$1
if [[ $UP =~ ^[\-0-9]+$ ]]; then
if ((UP<0)); then
UP=${UP#-}
cd $(echo $PWD | cut -d/ -f1-$((UP+1)))
else
cd $(printf "%0.s../" $(seq 1 ${UP}));
fi
fi
}
Zum Download/Installation auf github.
für Fische Benutzer,
function cdd
for x in (seq $argv)
cd ..
end
end
und speichern Sie es auf: ~/.config/Fisch/Funktionen/cdd.fish
und nur $ cdd 3
Um bis 3 Verzeichnisse zu gehen.
Ich habe die Funktion so modifiziert, dass sie nur einmal cd aufruft. Dies bewahrt die Fähigkeit von "cd-", zum vorherigen Verzeichnis zurückzuspringen. –
Um eine Ebene höher zu gehen, sind sowohl 'cd..' als auch' cd ..' äquivalent in Windows, aber linux ist zu streng und weist 'cd..' als ungültigen Befehl nur wegen fehlendem Platz zurück . – RBT