Unix Power Tools 3판 175페이지에서:
섹션 9.27에서는 디렉터리 중간 경로를 일치시키는 방법을 보여줍니다. 다음은 매우 편리할 수 있는 더 간단한 "파일 찾기" 별칭입니다.
alias ff "find . -name '*\!{*}*' -ls"
파일이나 디렉터리 이름을 지정하면 별칭은 해당 인수가 포함된 파일이나 디렉터리 이름의 긴 목록을 제공합니다.
(이것도사용 가능한 온라인.)
-name
나는 운영자의 주장을 전혀 이해하지 못합니다. 이것은 철자 오류인가요? 특정 버전에서만 작동합니까 find
? 백슬래시, 중괄호 및 중괄호는 무엇을 합니까?
답변1
이것은 csh
별칭입니다. 주어진 인수는 -name
인터프리터가 아닌 쉘에 의해 해석됩니다 find
. 내가 올바르게 이해했다면 는 \!{*}
주어진 인수로 대체됩니다 ff
(보통은 \!*
). 이 책이 쉘을 지정하지 않는다는 것이 정말 이상합니다.
기본적으로 별칭을 정의하려면 다음을 입력하십시오.
ff test
달리다
find . -name '*test*' -ls
(그리고 여러 인수를 정상적으로 처리하지 않습니다).
이 책의 두 번째 판에서 텍스트는 질문에 제공된 것과 동일한 방식으로 별칭을 정의하고 csh_init
함께 제공되는 CD의 및를 가리킵니다. sh_init
(이것은 섹션 17.04입니다.) 흥미롭게도 csh_init
CD에는 별칭이 정의되어 있지 않지만 sh_init
동등한 기능은 다음과 같습니다 ff
.
ff() { find . -name "*$1*" -ls; }