ディレクトリパスをエイリアスで登録して簡単に移動できるgotoコマンドを使ってみる
ディレクトリのパスをエイリアスとして登録して簡単に移動できるgotoっていうコマンドを見つけたから使い方のメモ
インストール
$ mkdir -p ~/.bash $ wget https://raw.githubusercontent.com/iridakos/goto/master/goto.sh -O ~/.bash/goto.sh
.bashrc
に以下を追記する
source ~/.bash/goto.sh
読み込んで
$ source ~/.bashrc
使ってみる
$ goto usage: goto [<option>] <alias> [<directory>] default usage: goto <alias> - changes to the directory registered for the given alias OPTIONS: -r, --register: registers an alias goto -r|--register <alias> <directory> -u, --unregister: unregisters an alias goto -u|--unregister <alias> -p, --push: pushes the current directory onto the stack, then performs goto goto -p|--push <alias> -o, --pop: pops the top directory from the stack, then changes to that directory goto -o|--pop -l, --list: lists aliases goto -l|--list -x, --expand: expands an alias goto -x|--expand <alias> -c, --cleanup: cleans up non existent directory aliases goto -c|--cleanup -h, --help: prints this help goto -h|--help -v, --version: displays the version of the goto script goto -v|--version
使い方
移動
goto <alias>
また、Tab
で補完できる
エイリアス登録(-r
)
-r
--register
goto -r <alias> <directory>
例)~/src/python
をpython
としてエイリアス登録
$ goto -r python ~/src/python
エイリアス登録を解除(-u
)
-u
--unregisters
goto -u <alias>
例)エイリアスのpython
の登録を解除
$ goto -u python
カレントディレクトリをスタックにpushし、goto(-p
)
-p
--push
goto -p <alias>
カレントディレクトリに戻ってきたいときとか使えそう
例)カレントディレクトリをスタックに追加してから、python
に移動
$ pwd /Users/tamago324/dotfiles/ $ goto -p python
スタックからpopし、移動(-o
)
-o
--pop
goto -o
-p
でpushされたスタックからpopし、移動
例)/Users/tamago324/dotfiles/
でgoto -p xxx
としていた場合
$ goto -o $ pwd /Users/tamago324/dotfiles/
スタックに追加していたため、戻れる
エイリアスの一覧(-l
)
-l
--list
goto -l
エイリアスの完全パスを取得(-x
)
-x
--expand
goto -x <alias>
存在しないパスのエイリアスを削除(-c
)
-c
--cleanup
goto -c
参考文献
指定フォルダ以下のファイルをコピーする - Python
指定のフォルダの下にあるファイルをコピー
再帰的に見ていく
再帰的にファイルを見るのにpathlib.Path.glob()
を使い、ファイルをコピーするのにshutil.copy()
を使う
例)C:\sample
以下のファイルで、ファイル名に"a"
が含まれているファイルをカレントディレクトリにコピーする
>>> from pathlib import Path >>> p = Path(r"C:\sample") WindowsPath('C:/sample') >>> for f in p.glob("**/*a*): ... shutil.copy(f.absolute(), "./")
参考文献
nonlocal ネストした関数から変数にアクセスする - Python
【Windows】フォルダをエクスプローラで開く - Python
subprocess
モジュールのcall
を使う
import subprocess subprocess.call(f'explorer "{開くフォルダのパス}"')
参考文献
os.path.expanduser関数 - Python
カレントユーザのホームディレクトリのパスを取得することができる
>>> os.path.expanduser('~/src/python/') '/Users/tamago324/src/python/'
使えるときあるのかな?
参考文献
【IFNULL関数】 AがNULLだったら、B。AがNULLじゃなかったら、Aを返す関数 - MySQL
便利なのを知ったからメモ
もし、第1パラメータがNULL
だったら、第2パラメータを返し、
第1パラメータがNULL
じゃなかったら、第2パラメータを返してくれる便利なやつ
第1パラメータがNULL
ではない時
SELECT IFNULL('AAA', 'BBB') FROM DUAL
結果
AAA
第1パラメータが返ってくる
第1パラメータがNULL
の時
SELECT IFNULL(NULL, 'BBB') FROM DUAL
結果
BBB
第2パラメータが返ってくる
Pythonでのor
みたいな?
>>> 'hoge' or 'fuga' 'hoge' >>> None or 'fuga' 'fuga'