.txt 파일을 디렉터리에 복사합니다.

.txt 파일을 디렉터리에 복사합니다.

디렉토리의 파일을 복사하는 데 문제가 있습니다.

.txt디렉터리에 많은 파일이 있고 디렉터리를 기반으로 파일을 복사하고 싶습니다 . 예를 들면 다음과 같습니다..jpeg.txt

direct/direct1
direct/direct2

direct1:
 file.txt
 file2.txt
 file.jpeg
 file2.jpeg

direct2:
 file3.txt
 file4.txt
 file3.jpeg
 file4.jpeg

.txt내 복사 명령에는 각 디렉터리의 파일 만 필요합니다.

답변1

.txt디렉토리의 모든 파일을 복사하려면 다음을 사용하십시오.와일드카드 패턴:

cp direct/direct1/*.txt target

그러면 .txt디렉터리의 모든 파일이 direct/direct1해당 디렉터리로 복사됩니다 target(디렉터리는 이미 존재해야 함).

여러 패턴을 전달하여 여러 디렉터리에서 파일을 복사할 수 있습니다.

cp direct/direct1/*.txt direct/direct2/*.txt target

.txt모든 하위 디렉터리에 파일을 복사하려면 direct해당 디렉터리에 와일드카드를 사용할 수도 있습니다.

cp direct/*/*.txt target

특정 디렉터리에서만 복사하려는 경우 해당 디렉터리에만 일치하는 와일드카드 패턴을 사용할 수 있습니다. 예를 들어, , , 및 direct4개의 하위 디렉토리가 있고 및 에서만 파일을 복사 하려는 경우 다음을 사용할 수 있습니다.foobarbazquxbarbaz

cp direct/ba?/*.txt target

지금까지의 모든 예제는 direct자체 또는 에서 파일을 복사하지 않습니다. 에서 파일을 복사 direct하려면 해당 파일을 목록에 포함해야 합니다..txtdirect

cp direct/*.txt direct/*/*.txt target

direct모든 하위 디렉터리, 모든 하위 디렉터리 등에서 파일을 반복적으로 복사 하려면 와일드카드를 사용할 수 있습니다 **(셸에서 지원하는 경우). zsh에서는 즉시 작동하지만세게 때리다, 먼저 를 사용하여 활성화해야 합니다 shopt -s globstar.

cp direct/**/*.txt target

모든 파일은 target자체적으로 복사되므로 디렉토리 구조가 재생산되지는 않습니다. 디렉토리 구조를 재현하려면 다른 도구가 필요합니다.동기화(지도 시간) 또는공원.

rsync -am --include='*.txt' --include='*/' --exclude='*' direct/ target/
cd direct && pax -rw -pe -s'/\.txt$/&/' -s'/.*//' . target/

답변2

find다음을 사용하여 특정 디렉터리에 있는 `.txt 파일만 선택할 수 있습니다 .

find direct/direct? -name "*.txt"

이렇게 하면 모든 파일이 인쇄되므로 원하는 파일이 있는지, 선택할 파일이 너무 많지 않은지 확인할 수 있습니다. 따옴표로 묶어야 합니다 *.txt. 그렇지 않으면 쉘은 이를 .txt현재 디렉토리의 파일로 확장하려고 시도합니다.

복사의 경우 (가장 일반적으로) 다음 두 가지 중 하나를 수행해야 합니다. .txt파일에 대한 직접 경로를 유지할지 여부. 저장하려면 다음을 사용하세요.

find direct/direct? -name "*.txt" -print0 | cpio -pdmv0 target_directory

모든 파일을 대상 디렉터리에 복사하려면 .txt@lambert의 제안과 비슷한 것을 사용하십시오.

find direct/direct? -name "*.txt" -exec cp {} target_directory +

( 를 사용할 때 각 파일에 대해 를 호출하는 대신 여러 파일 이름이 단일 파일에 전달되므로 대신 를 사용하는 것이 +더 효율적입니다 .)\;cp+cp\;

두 번째 명령의 경우 -print0특수 문자가 포함된 경로를 처리할 필요가 없으며 대체된 파일 이름은 {}호출되는 방식에 따라 올바르게 구분됩니다.cp

관련 정보