別のアプローチは、この目的専用の独自のコマンドを作成することです。これは、次のような関数を介して実行できます。
$ function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
ここで、(1) mv-specialは関数名です。(2)変数$1and $2は、コマンドmvandで使用される関数の引数cdです。(3) $(echo $2-) varの文字列の末尾にワイルドキャット文字を追加し、変数にパスのみが含まれる場合の$2動作を修正します。(4)はからのパスのみをフィルタリングします。dirname$2 $(dirname $(echo $2-))$2
この回答によると、関数は次のようになります。
$ function mv-special { mv $1 $2; cd ${2%/*}; }
ここで:${2%/*}からのパスのみをフィルタリングし$2ます。
コマンドとして使用するには、この関数をエクスポートする必要があります。
$ export -f mv-special
使用法:
$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/file.pdf
または:
$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/
それに注意してください-両方のバリアントについて-2番目の引数($2)はファイル名またはスラッシュ(/)で終わる必要。
新しいコマンドを永続的に使用可能にするには、関数の定義とエクスポートコマンドを以下に追加する必要があります~/.bashrc。
# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
export -f mv-special
または:
# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd ${2%/*}; }
export -f mv-special

カスタムコマンドを行うことができ、中に配置された実行可能なスクリプトファイル経由~/binかに/usr/sbin:どのように私は(スクリプトを実行する)カスタムターミナルコマンドを作成することができますか?しかし、正直に言うと、私が直面したトラブルの動作とcd、このシナリオでは。