명령 줄 (bash)을 통해 내 컴퓨터의 다른 디렉토리 (이 경우 Mac OS X 10.6.7 실행)에 'cd'할 때마다 즉시 'ls'를 입력하여 내용 목록을 얻습니다. 그 디렉토리에. 요청한 디렉토리로 변경하여 한 번에 목록을 제공하도록 'cd'를 재정의하는 방법을 찾으려고합니다.
~ / .bash_profile에 다음 줄을 추가하여 작업하려는 기본 기능을 얻을 수있었습니다.
function cl() { cd "$@"; ls -l; }
이것은 예상대로 작동합니다. 요청한 디렉토리로 변경 한 후 내용을 표시합니다. 문제가 발생하면 새 "cl"명령을 만드는 대신 "cd"자체를 재정의하려고합니다.
다음 은 작동 하지 않습니다
##### Attempt 1 #####
# Hangs the command line
function cd() { cd "$@"; ls -l; }
##### Attempt 2 #####
# Hangs the command line
function cd() { 'cd' "$@"; ls -l; }
##### Attempt 3 #####
# Does not change directory.
# Does list contents, but of the directory where you started.
function cd() { /usr/bin/cd "$@"; ls -l; }
#### Other attempts that fail in various ways #####
alias cd=cd "$@"; ls -la;
alias cd="cd '$@'; ls -la;"
alias cd='cd "$@"'; ls -la;
alias cd=/usr/bin/cd "$@"; ls -la;
또한 나열되지 않은 몇 가지 다른 반복을 시도하고 작동하는 'cl'기능을 가리키는 별칭을 만들었습니다. 어느 것도 효과가 없었습니다.
문서에서 읽은 내용은 'cd'를 외부 명령으로 실행할 수 없다는 사실에 대해 이야기합니다 (이 기능을 사용해야하는 방식으로 이해합니다).
따라서 현재 "cl"명령을 사용하여 원하는 것을 얻을 수 있지만 질문은 / 남아 있습니다.
'cd'의 동작을 재정 의하여 요청 된 디렉토리로 변경 한 후 나중에 다른 작업을 수행하는 방법이 있습니까?