Linux 명령 행 .txt
에서 한 디렉토리 (및 그 서브 디렉토리)에서 다른 디렉토리 로 (매우 큰) 파일 세트를 복사하고 싶습니다 .
그대로 유지하려면 디렉토리 구조가 필요하고로 끝나는 파일을 제외하고 파일을 무시해야합니다 .txt
.
Linux 명령 행 .txt
에서 한 디렉토리 (및 그 서브 디렉토리)에서 다른 디렉토리 로 (매우 큰) 파일 세트를 복사하고 싶습니다 .
그대로 유지하려면 디렉토리 구조가 필요하고로 끝나는 파일을 제외하고 파일을 무시해야합니다 .txt
.
답변:
당신은 처음으로 그것을 복사하는 방법에 대해
cp -r /old/folder /new/folder
그런 다음 새 폴더로 이동하여 실행하십시오.
find . -type f ! -iname "*.txt" -delete
아니면 그냥
cp -r /old/folder /new/folder && find . -type f ! -iname "*.txt" -delete
편집 : 좋아, 필터링하는 하나의 명령을 원합니다 (시스템에 cpio
명령 이 없기 때문에 이것을 테스트하지 않았습니다 !). 여기 내가 찾은 곳이 있습니다 : http://www.gnu.org/software/findutils/manual/html_mono/find.html#Copying-A-Subset-of-Files
find . -name "*.txt" -print0 |
cpio -pmd0 /dest-dir
제발 나는 아직 그것을 시도하지 않았기 때문에, 먼저 테스트합니다. 누군가가 확인하면 좋을 것입니다.
0
in을 유지하고 명령 끝에 -pmd0
추가 -print0
해야합니다 find
(바로 직전 |
).
macOS에서 동일한 작업을 수행하려고했지만 옵션이 실제로 효과가 없었습니다. 내가 발견 할 때까지 ditto
.
많은 .wav 파일을 복사해야했고 비디오 파일을 건너 뛰어야했습니다.
find . -type f -iname "*.wav" -ls -exec ditto {} /destination/folder/{} \;
find .
-현재 폴더에서 찾기를 실행합니다. cd /source/folder
시작하기 전에 확인하십시오
-type f
-파일 만 찾도록 지정
-iname "*.wav"
-대소 문자를 구분하지 않는 * .wav를 찾도록 지시합니다.-ls
-작업중인 파일이 표시됩니다. Otherwase는 아무것도 보여주지 않습니다.-exec ditto {} /destination/folder/{} \;
-동일한 디렉토리 트리를 사용하여 파일을 복사하고 작성하는 모든 작업을 수행합니다.