파일을 찾은 다음 파일이 들어있는 디렉토리를 입력하고 싶습니다. 시도 find /media/storage -name "Fedora" | xargs cd
했지만 물론 is not a directory
오류가 발생했습니다.
한 줄 명령으로 부모 디렉토리를 어떻게 입력합니까?
shopt -s globstar
에서는 할 수 cd /media/storage/**/Fedora
는 있지만 첫 번째 일치에서 glob 평가를 중단하지는 않습니다 (강철 드라이버의 솔루션보다 느립니다. 대화 형 사용의 경우 일반적으로 마우스에 도달하고 디렉토리 이름을 복사 / 붙여 넣는 것입니다. (그리고 내가 원하지 않는 후행 경로 구성 요소를 제거하는 데 필요한 alt + backspace),이 작업을 많이 수행하면 쉘 기능을 만들 가치가 있다고 생각합니다.
xargs cd
작동하지 않을 수 있습니다. cd
쉘 자체의 컨텍스트를 수정해야하기 때문에 쉘 내장으로 만 작동 할 수 있습니다. xargs
자식 프로세스가 그렇게 할 수있는 방법은 없습니다 . 이것이 "물론"이라는 의미이거나, find
인쇄 경로 에 공백이 포함되어 -d \n
있거나 사용하지 않았 거나 xargs로 분할 된 공백이있는 경우 IDK 입니다. 또는 find -exec {} \;
.
cd
. cd
bash는 내장 된 bash입니다 cd
. 별도의 명령 인 경우 dir을 변경 한 다음 종료합니다 (이전에는 dir을 변경하지 않고 이전과 동일한 상태 인 쉘로 돌아갑니다).