새 디렉토리를 만들고 해당 디렉토리로 이동하는 별칭

새 디렉토리를 만들고 해당 디렉토리로 이동하는 별칭

그래서 여기서는 명령줄 인수를 받아들이는 명령에 대한 별칭을 만들거나 적어도 만들려고 시도했으며 해당 이름으로 새 디렉터리를 만든 다음 해당 디렉터리로 이동합니다.

alias newfolder='mkdir $2 ; cd "$(history | tail -2 | awk '\''NR == 1'\'' | awk '\''{print $3}'\'')"'

별칭이 성공적으로 생성되었지만 명령줄 인수를 사용하여 명령을 실행하려고 하면 이 오류 메시지가 나타납니다.

username:~/workspace (master) $ newfolder a
mkdir: missing operand
Try 'mkdir --help' for more information.
bash: cd: newfolder='mkdir: No such file or directory

답변1

별칭이 아닌 함수가 필요합니다. 노력하다:

newfolder() { mkdir -p "$1" && cd "$1"; }

예:

$ pwd
/tmp
$ newfolder dir1/dir2
$ pwd
/tmp/dir1/dir2

노트:

  1. 필요한 경우 누락된 상위 디렉터리를 생성하도록 지시하는 -p옵션입니다 . mkdir위의 예에서는 가 dir1존재하지 않았지만 과 mkdir -p dir1/dir2가 모두 생성되었습니다 .dir1dir2

  2. 쉘 연산자를 사용하기 때문에 명령이 성공한 경우에만 &&명령 cd이 수행됩니다 .mkdir

  3. 별칭은 단어를 고정 문자열로 대체할 수 있는 매우 간단한 경우에 유용합니다. 별칭은 인수를 처리하지 않습니다.

  4. 별칭 대신 셸 함수를 사용하기 때문에 $1필요에 따라 이 경우 와 같은 인수를 참조할 수 있습니다.

관련 정보