기본 find
명령이 주어지면:
find . -type d
반환된 각 디렉터리에 대해 해당 디렉터리를 현재 디렉터리로 만드는 대화형 셸을 생성하고 싶습니다.
답변1
해결책
이것은 작동합니다:
find . -execdir sh \;
데모
# Create some sample directories
$ for i in {1..4}; do mkdir -p "/tmp/example/$i/foo" ; done
# spawn
$ find -s /tmp/example -name foo -execdir sh \;
sh-3.2$ pwd
/private/tmp/example/1
sh-3.2$ exit
sh-3.2$ pwd
/private/tmp/example/2
sh-3.2$ exit
sh-3.2$ pwd
/private/tmp/example/3
sh-3.2$ exit
sh-3.2$ pwd
/private/tmp/example/4
sh-3.2$ exit
$
어떻게 작동하나요?
찾다
관련 맨페이지 정보 및/또는 기타 정보:
-s
: find가 사전순(즉, 각 디렉토리 내에서 알파벳순)으로 파일 계층 구조를 탐색하게 합니다. 이는 솔루션에 중요하지는 않지만 셸의 순서를 예측 가능하게 만듭니다.
/tmp/example
:path 인수 – find 유틸리티는 나열된 각 경로에 대한 디렉토리 트리를 반복적으로 찾습니다.
-name pattern
: 확인 중인 경로 이름의 마지막 부분이 패턴과 일치하는 경우 파일을 일치시킵니다. 특수 쉘 패턴 일치 문자( ['',
]'', *'', and
?'')를 패턴의 일부로 사용할 수 있습니다.
-execdir utility \;
: -execdir 기본 옵션은 -exec 기본 옵션과 동일하지만 유틸리티는 현재 파일이 저장된 디렉터리에서 실행됩니다.
쉿
sh
: sh
이 컨텍스트에서 실행하면 현재 파일이 저장된 디렉터리에서 대화형 셸이 생성됩니다.