디렉토리 목록이 포함된 파일을 사용하여 find 명령 실행

디렉토리 목록이 포함된 파일을 사용하여 find 명령 실행

다음과 같은 디렉터리 경로가 포함된 큰 파일이 있습니다.

$PRJ/fp/t/mxl/lf/
$PRJ/fp/t/mxl/lf/

파일을 한 줄씩 읽고 출력 파일의 한 줄에 각 디렉터리 파일 내의 모든 파일을 나열하고 싶습니다.

출력 파일은 다음과 같아야 합니다.

$PRJ/fp/t/mxl/lf/ring.lf
$PRJ/fp/t/mxl/lf/rin.lef

디렉토리 경로를 지정하는 find 명령을 사용할 수 있지만, 디렉토리 경로가 있는 파일에는 어떻게 사용합니까? find input_file -type f작동하지 않습니다.

누구든지 입력으로 제공된 파일에 있는 디렉터리 경로를 사용하여 디렉터리 내부의 파일을 나열하는 방법을 제안할 수 있습니까?

답변1

GNU는 find--separated 경로 집합을 포함하는 파일을 지정하는 이 옵션을 사용하여 파일에서 시작 지점을 반복적으로 읽을 수 있습니다 -files0-from. NUL다루다오직하위 디렉터리가 아닌 디렉터리를 지정하는 경우에는 를 사용할 수도 있습니다 -maxdepth 0. 이 옵션은 GNU 4.9.0(2022-02-22) 이상에서 사용할 수 있습니다 -files0-from.find

귀하의 경우 tr줄 바꿈으로 구분된 파일 목록을 NUL--delimited 파일 목록으로 변환한 다음 find해당 목록을 검색할 입력 디렉터리 집합으로 읽어야 합니다. 예를 들어,

tr '\n' '\0' <input_file | find -maxdepth 0 -files0-from - -type d -print

관련 정보