【コピペでOK】shで簡単に登録ディレクトリに移動
コマンド登録しておけば、ワンコマンドで指定のディレクトリに移動できます。
①以下のshスクリプトを任意のディレクトリに配置
※Windowsの場合は、Gitbashなどのターミナルで使用してください。
※ファイル名は任意です、使いやすいファイル名に変更してください。
(表記のファイル名はcdコマンドにちなんでいます。)
cds.sh
#!/bin/bash #パス設定 path=( "/c/Users/unrealman/project/mnt/nfs/app1" "/c/Users/unrealman/project/mnt/nfs/app2" "/c/Users/unrealman/project/mnt/nfs/app3" "/c/Users/unrealman/project/mnt/nfs/app3/log" #登録したいディレクトリを設定 ) #選択肢の表示 i=0 for value in ${path[@]}; do echo "${i}:${value}"; let i++ done #入力値の待ち受け read -p "Hit number: " num #入力値に応じてディレクトリ移動 cd ${path[${num}]}
②コマンド登録(.bash_profileファイルを編集)
.bash_profileに以下の行を追加してください。
※.bash_profileがなければ作成してください。
※~/custom/cds.shの部分のパスは①で配置したディレクトリを指定してください。
今回は、ホームディレクトリ(~)の中にcustomディレクトリをきって配置しました。
$ vi ~/.bash_profile
alias cds='source ~/custom/cds.sh';
【ポイント】
"sh"や"bash"ではなく、"source"で読み込んでいる点がポイントです。
"sh"や"bash"だと、新たな子プロセスを生成して実行するので、
shスクリプト内のcdコマンドで移動するのは子プロセスであり、
shスクリプトの実行が完了すると元に戻ってしまいます。
対して"source"の場合は現在のプロセスで実行するため、
shスクリプト実行後のディレクトリが保持されるというわけです。
④動作確認
登録したディレクトリが表示され、左の番号を入力してEnterで移動していればOKです。
unrealman@XXX-12345 MINGW64 ~
$ cds
0:/c/Users/unrealman/project/mnt/nfs/app1
1:/c/Users/unrealman/project/mnt/nfs/app2
2:/c/Users/unrealman/project/mnt/nfs/app3
3:/c/Users/unrealman/project/mnt/nfs/app3/log
Hit number: 3unrealman@XXX-12345 MINGW64 ~/project/mnt/nfs/app3/log
$
以上です。