디렉터리를 다른 위치로 이동하고 현재 디렉터리를 해당 위치로 변경하려면 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