해결책

해결책

기본 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이 컨텍스트에서 실행하면 현재 파일이 저장된 디렉터리에서 대화형 셸이 생성됩니다.

관련 정보