지정된 하위 디렉터리의 특정 파일을 별도의 하위 디렉터리로 복사합니다.

지정된 하위 디렉터리의 특정 파일을 별도의 하위 디렉터리로 복사합니다.

"_CSF"로 끝나는 모든 하위 디렉터리의 모든 .fastq 파일을 다른 생성된 하위 디렉터리인 dir1_CSF에 복사하고 싶습니다.

특정 파일을 복사하는 방법은 이해하지만 특정 디렉터리에서 복사하는 방법은 이해하지 못합니다.

저는 쉘 스크립팅을 처음 접했기 때문에 도움이 매우 도움이 될 것입니다.

답변1

셸을 사용하면 다음을 수행할 수 있습니다.

find *_CSF -type f -iname "*.fastq" -exec cp {} dir1_CSF/ \;

답변2

DIR을 최상위 디렉터리로 설정하고 TARGET을 대상 디렉터리로 설정합니다. 그런 다음 다음을 실행하십시오.

find $DIR \( -type d -name "$TARGET" -prune \) -o \
\( -type f -name "*.fastq" -exec cp -t "$TARGET" {}  + \)

네, 그게 순서입니다. 이는 GNU find 및 GNU fileutils가 이러한 경우에 cp편리한 인수를 제공한다고 가정합니다.-t

어떻게 작동하나요?

(설정한 대로)로 시작하는 명령은 확장명과 일치하는 모든 파일을 찾습니다( 디렉토리 find아래 의 파일은 제외). 그런 다음 이러한 모든 파일 이름을 프로그램 에 전달합니다 .$DIR$TARGETcp

관련 정보