コマンドを作ってみた(trash, untrash)
コマンドとは
ls
とか、cd
とか、cat
とか、ターミナル上でよく使うもの
OS
Mac
(untrashにて、Linuxと動作の異なるコマンドsed
を利用)
前準備
.profile
に以下を書く。
export PATH="$HOME/bin:$PATH"
その後、source .profile
。
vi ~/bin/コマンド名
プログラムを書いた後、
chmod +x コマンド名
trash
機能
trash ファイル
とすると、対象のファイルを.trash/
に移動する。
その際、trashを実行した日付をファイル名の先頭につける。
動き
コード
#!/bin/sh d=`date +%F` trash=$HOME/.trash mkdir -p $trash mv $1 $trash/$d-$1 touch $trash/$d-$1
untrash
機能
一番最近trashをしたファイルを現在のディレクトリに移動させる。その際、ファイル名から日付を削除する。
動き
コード
pwd=`pwd` cd $HOME/.trash/ tra=`ls -rt1 | tail -1` org=`echo $tra | sed -E 's/^.{11}//'` mv $tra $pwd/$org
Macでは、sedに-E
をつける必要があるらしい。
^
は先頭から
.
は全ての文字
^.{11}
で、先頭から11文字
s/^.{11}//
で、先頭から11文字を消す(先頭から11文字は日付)
=
をくっつけるのよく忘れる