10K_TIF(홈 디렉터리)라는 디렉터리가 있습니다. 이 기본 디렉터리에는 각각 tif 이미지가 포함된 여러 하위 디렉터리가 있습니다. 각 TIF 이미지를 읽고 bash 명령을 사용하여 해당 경로를 추출하고 싶습니다. 10K_TIF 크기가 15TB를 초과합니다.
견본:
10K_TIF/4320cc/4320cc_01_rectified.tif
10K_TIF/4320cc/4320cc_02_rectified.tif
10K_TIF/4520cc/4520cc_01_rectified.tif
10K_TIF/4520cc/4520cc_02_rectified.tif
모든 하위 디렉터리를 에코하고 모든 tif 이미지도 에코했지만 이러한 이미지는 별도의 명령에 있습니다.
답변1
당신은 그것을 사용할 수 있습니다 find
:
find 10K_TIF -iname '*TIF'
결과를 반복하고 각 이미지에 대해 특정 작업을 수행하려면 다음을 사용할 수 있습니다.
find 10K_TIF -iname '*TIF' | while read tif; do echo "Found: $tif"; done
위의 내용은 파일 이름이 정상이고 공백이나 이상한 문자가 없다고 가정합니다. 파일 이름에 이러한 문자가 포함될 수 있는 경우 대신 다음을 사용하십시오.
find 10K_TIF -iname '*TIF' -print0 |
while IFS= read -r -d '' tif; do echo "Found: $tif"; done
답변2
find 10K_TIF -iname "*.tif"
파일의 콘텐츠 유형을 찾는 등 각 파일을 처리하려는 경우
find 10K_TIF -iname "*.tif" -print0 | xargs -0 -n1 file
또는 md5sum을 계산하십시오.
find 10K_TIF -iname "*.tif" -print0 | xargs -0 -n1 md5sum
답변3
모든 하위 디렉터리의 모든 *.tiff 파일만 나열하려면 패턴(globstar)을 bash
사용하는 것이 가장 쉽습니다 .**
shopt -s globstar
ls **/*.tiff
답변4
find
모든 파일을 찾아 사용하려는 명령에 전달할 수 있습니다.
find 10K_TIF -iname "*.tif" -type f -print0 | xargs -0 -n1 <command>
(대소문자 구분)으로 끝나는 모든 항목 10K_TIF
과 일치하는 모든 하위 디렉터리를 검색합니다..tif
그리고.tif
일반 파일입니다(즉, 디렉토리, 특수 파일 및 로 끝나는 심볼릭 링크는 처리되지 않습니다).
예를 들어, 심볼릭 링크와 일반 파일을 처리하려면 다음을 사용할 수 있습니다.
find 10K_TIF -iname "*.tif" \( -type f -o -type l \) -print0 | xargs -0 -n1 <command>