한 디렉토리에 110개의 큰 파일이 있습니다. 하지만 50분 후에 시스템 시간이 초과되어 즉시 복사할 수 없습니다. 파일 1~10, 다음 11~20, 다음 21~30 등을 복사하고 싶습니다. 순서는 중요하지 않습니다. 명령줄을 작성할 때마다 cp
10개의 파일을 복사하고 싶습니다. cp
파일 번호 11~20(머리나 꼬리가 아님)을 복사 하려면 어떻게 해야 합니까 ?
추신 : 내 노트북은 MacBook입니다
파일 이름에 공백이 포함되어 있습니다.
답변1
rsync -ai /path/to/source/directory/ /path/to/destination/directory
rsync
이는 원본 디렉터리의 모든 파일을 대상 디렉터리로 복사하는 데 사용됩니다 . 복제가 중단된 경우 동일한 명령을 다시 실행하여 복제를 다시 시작할 수 있습니다.
옵션 -a
( --archive
)은 파일의 메타데이터(소유자, 권한, 타임스탬프 등)를 보존합니다. 이는 후속 실행에서 전송해야 할 파일과 전송하지 말아야 할 파일을 결정하는 데 사용됩니다.
옵션 -i
( --itemize-changes
)을 사용하면 rsync
각 전송에 대한 정보가 출력됩니다.
존재하다코멘트AWS S3 버킷에 대해 이 작업을 수행하고 싶을 수도 있다고 말씀하셨습니다.
이 경우 다음을 사용할 수 있습니다.
aws s3 sync /path/to/source/directory/ s3://bucket/path/to/destination/directory/
어떤 이유로 컴퓨터 연결이 끊어진 경우 다시 시작할 수도 있습니다.
당신은 또한 볼 수 있습니다
참고: 저는 AWS 사용자가 아니므로 이를 테스트할 수 없습니다.
답변2
사용암소 비슷한 일종의 영양 find
, xargs
, 및 cp
, 이렇게 하면 한 번에 10개의 파일이 복사됩니다.
d="destination_directory..."
s="source_directory..."
find "$s" -type f -print0 | xargs -0rn 10 cp -n -t "$d"