ターミナルから1つのディレクトリに移動するにはどうすればよいですか?


16

スーパーnoobの質問:cdターミナルを使用してディレクトリ内を下に移動できます。行き過ぎた場合、どうやって戻ることができますか?



unix.stackexchange.com/a/81232/18237複数のディレクトリブランチで作業し、戻ってくる「開始」ポイントをマークするのに最適
Mateo

あなたは誰もあなたがこの愚か者であることを認めたくないことを知っていますが、この質問はちょうど1000回の視聴に当たりました。そう(笑)私は、私のような他の人がそこにいることを知っています。:P
ビンススカリア

回答:


30

cd .. ちょうど1つのディレクトリに戻ります。

これらをつなげて複数のディレクトリに移動できます(例:3)

cd ../../..

cd ..複数回入力する代わりに、次の関数を.bashrc最上部のどこかに配置し、保存.bashrcして実行するsource .bashrcか、単に端末を閉じて再度開くことができます。これで、指定したcd..回数を正確に実行する関数ができました。

function goUp {
  num=$1
  while [ $num -ne 0  ];do
    cd ..
    num=$((num-1))
  done
}

デモ:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

代わりに:

goup(){ 
    cd $(n=$1 awk 'BEGIN{
        for(i=1;i<=ENVIRON["n"];i++) 
            printf "../"}';) 
}

このような方法では、シンボリックリンクに沿って戻ることに注意してください。ここに私が意味するものがあります:

$ namei "$PWD" 
f: /home/user/VirtualBox VMs/CentOS
 d /
 d home
 d user
 l VirtualBox VMs -> /mnt/ubuntu/vboxvms
   d /
   d mnt
   d ubuntu
   d vboxvms
 d CentOS

$ goup 2
$ pwd
/home/user

こちらもご覧ください


さらに情報を追加しました。確認してください。
セルギーKolodyazhnyy

それだけかもしれませんfor i in $(seq "$1"); do cd ..; done
-deltab

@deltab true、同様に行うことができます。。。しかし、forループをシミュレートするには、while +カウンターを使用することをお勧めします。私はU&Lサイト上の前に、関連する質問をしてきました
Sergiy Kolodyazhnyy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.