ディレクトリを別の場所に移動して現在のディレクトリをその場所に変更するには、bashコマンドが必要です。次の簡単なものmvcd
私は前に試しました
mvcd () {
mv "$1" "$2"
cd "$2"
}
しかし、MV:
rename samples-folder to /Users/user/work/samples-folder: No such file or directory
答え1
コマンドは正しく機能します。ターゲットディレクトリが/Users/user/work/
存在しないようです。
ただし、次のようにスクリプトを拡張できます。
- 必要な数のパラメータを受け入れ、最後のパラメータ - >に
mv
設定します。TARGET
${@: -1}
- 引数を解析し、
-t TARGET
型を評価しますTARGET
。 - ファイル名の場合は、
TARGET
スクリプトをcd
適切なパス(${TARGET%/*}
)に変更する必要があります。
mvcd() {
mv "$@" || return 1
TARGET="${@: -1}"
while [[ $# -gt 0 ]]; do
case $1 in
-t|--target-directory)
TARGET="$2"
shift 2
;;
--)
break
;;
*)
shift
;;
esac
done
if [ -d "$TARGET" ]; then
cd "$TARGET"
elif [ -f "$TARGET" ]; then
cd "${TARGET%/*}"
else
printf 'ERROR: %s does not exist\n' "$TARGET"
fi
}
バージョンが必要なようですbash
> 。4.1