또 다른 방법은이 목적을위한 전용 명령을 만드는 것입니다. 이것은 다음과 같은 기능 을 통해 수행 할 수 있습니다 .
$ function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
여기서 : (1) mv-special
은 함수 이름입니다. (2) 변수 $1
와 $2
명령에 의해 사용될 함수의 인수 mv
와 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
)는 파일 이름 또는 슬래시 ( /
)로 끝나야 합니다.
새 명령을 영구적으로 사용할 수 있으려면 함수 및 내보내기 명령의 정의가 다음에 추가되어야합니다 ~/.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
.