현재 디렉터리를 이 디렉터리로 이동하고 변경하는 Bash 명령

현재 디렉터리를 이 디렉터리로 이동하고 변경하는 Bash 명령

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

관련 정보