2013年2月5日火曜日

複数のディレクトリを頻繁に行き来しつつ作業する人向けのシェルスクリプト

主に csh/tcshシェル使い向け、set/aliasのシェルスクリプトのご紹介です。

複数のディレクトリを頻繁に行き来していると、何度も同じディレクトリ名をタイプするのが
だんだん億劫になってくるものです。 まぁマウスでコピペすれば良いって話もありますが…。
ちなみに、tcshの場合は 直前(1個前)のディレクトリを記憶していて、
%cd -  で直前のディレクトリに戻れたりします。

これは便利なのですが、直前だけでは物足りない!!! もっと複数記憶させたいと言う人向けの設定です。
setと aliasのみの簡単なシェルスクリプトです。

set m0=$home
set m1=""; set m2=""; set m3=""; set m4=""; set m5=""; set m6=""; set m7=""; set m8=""; set m9="";
alias cd  'cd \!*; set m9=$m8; set m8=$m7; set m7=$m6; set m6=$m5; set m5=$m4; set m4=$m3; set m3=$m2; set m2=$m1; set m1=$m0; set m0=$cwd'
alias m1  'cd $m1 ; echo $cwd '
alias m2  'cd $m2 ; echo $cwd '
alias m3  'cd $m3 ; echo $cwd '
alias m4  'cd $m4 ; echo $cwd '
alias m5  'cd $m5 ; echo $cwd '
alias m6  'cd $m6 ; echo $cwd '
alias m7  'cd $m7 ; echo $cwd '
alias m8  'cd $m8 ; echo $cwd '
alias m9  'cd $m9 ; echo $cwd '
alias pwd 'echo $cwd'
alias mls 'echo m0: $m0; echo m1: $m1; echo m2: $m2; echo m3: $m3; echo m4: $m4; echo m5: $m5; echo m6: $m6; echo m7: $m7; echo m8: $m8; echo m9: $m9'


○使い方
  1. ディレクトリの記憶は cdで移動したときに勝手にやってくれる。(10個前以上は順次消去)
  2. 記憶されたディレクトリリストを見たい場合は、 %mls   を実行。
  3. リストにあるディレクトリに移動したい場合は   %m1~9 を実行。
  4. リストにあるディクトリに何らかのアクセスをしたい場合は $m1~$m9 で。

○使用例
  %pwd
   /home/user1/
  %cd hoge
  %cd /home/user2
  %cd foo
  %mls
   m0: /home/user2/foo/         (カレントディレクトリ)
   m1: /home/user2/             (1個前のディレクトリ)
   m2: /home/user1/hoge/        (2個前のディレクトリ)
   m3: /home/user1/             (3個前のディレクトリ)
  %m3                           (m3に移動)
  %mls
   m0: /home/user1/             (カレントディレクトリ)
   m1: /home/user2/foo/         (1個前のディレクトリ) 
   m2: /home/user2/             (2個前のディレクトリ) 
   m3: /home/user1/hoge/        (3個前のディレクトリ) 
   m4: /home/user1/             (4個前のディレクトリ)
  %ls
   aaa.txt bbb.txt
  %mkdir $m1/aaa                (/home/user2/foo下にaaaディレクトリ作成)
  %cp -p aaa.txt $m1/aaa/       (/home/user2/foo/aaa下に aaa.txtをコピー)



かなり単純なシェルスクリプトですので、記憶するディレクトリの重複チェックとかは無いです (^^;;)
ログインシェルの設定ファイル、 .cshrcもしくは、.tcshrcの末尾にでも貼り付けておけば
多少は幸せになれるかもしれません :D
お使いの環境とかの相性とかもあるかもしれませんので、適当なファイルに saveして、
sourceで実行して試してからの方が良いかもしれませんね。

それではまた。


 水も手間もいらない、枯れないお花、造花インテリアがプレゼントにはお勧めです♪
 興味がある方は、アートフラワー(高級造花)販売まで宜しくお願い致します♪

ご近所さんブログ、アートフラワー画像集も宜しくです。