2017-04-02 1 views
0

하위 폴더가있는 폴더가 여러 개 있고 그 다음에 파일이 여러 개있는 폴더가 있습니다. 주어진 디렉터리의 모든 파일을 하나의 폴더로 복사하는 bash 스크립트를 작성할 수 있습니까? 그래서 나는 이제까지 단 하나 폴더를 통해서 항해하고 다른 폴더에 내용을 베낄 필요 없다. 당신이 파일을 복사 할 아래의 최상위 디렉토리에하위 폴더가있는 폴더의 모든 내용을 bash로 다른 디렉토리로 복사

+0

파일 만 또는 디렉토리 구조를 복사 하시겠습니까? –

+0

난 단지 파일이 필요해 – Fabian

+0

당신은 cp의 -R 플래그를 살펴 보았는가? – alDiablo

답변

1

:

find . -type f -exec cp {} /some/new/location \; 

/some/new/location에 모든 정상적인 파일 복사를 찾습니다

+0

작은 힌트를 사용하면 끝에 "+"를 쓰면 더 적은 cp를 실행하는 데 약간 도움이 될 수 있습니다. – HuStmpHrrr

0
당신은 내부의 모든 파일 목록을 찾을 사용할 수

폴더 :

find ./source -type f 

하고 CP에 대한 인수로 출력을 사용, 그 결과는 다음과 같습니다

cp $(find ./source -type f) destination 

원본 디렉토리 트리 내에 충돌하는 이름이있는 파일이 있으면 문제가 발생합니다.

CP :이 경우 (Cp)에 같은 오류와 같은 이름을 가진 추가 파일을 복사하는 것을 거부하는 것과 생성 덮어 쓰지 않습니다 destination/t22' with ./source/test/t2/t22 '

으로 같은 이름을 가진 파일의 복사본은이 같은 백업 옵션을 사용할 수 있도록 :

cp --backup=numbered $(find ./source -type f) destination 

당신이 무엇을 사용 -v 일어나고보고 싶은 경우 (자세한) 옵션을

cp -v --backup=numbered $(find ./source -type f) destination 
관련 문제