리눅스에서 여러 파일 복사하기

리눅스에서 여러 파일 복사하기

숫자로 명명된 폴더가 있는 Linux 시스템이 있습니다. 이러한 폴더의 범위를 다른 서버에 안전하게 복사하려면 어떻게 해야 합니까? 소스 머신은 타겟 bash인 tcsh를 실행합니다. 현재 복사하려는 데이터가 포함된 디렉터리에서 다음 명령을 사용하고 있습니다.

scp -r [2042-2046] user@target:home/user/destination_folder

원본 컴퓨터에서 대상에 대한 비밀번호를 요청하고 파일을 복사하는 것처럼 보이지만 대상 컴퓨터에는 아무 것도 도착하지 않습니다. 오류가 없습니다. 그러나 폴더 범위를 단일 폴더 이름으로 바꾸면 복사가 제대로 작동합니다.

scp -r 2042 user@target:home/user/destination_folder

그러나 이는 scp 명령을 5번 반복하고 매번 비밀번호를 입력하는 것을 의미하며 이는 특히 더 넓은 범위의 경우 매우 비효율적입니다.

답변1

범위

[2042-2046]

파일 2와 파일 6으로 해석되는 것 같습니다.

다음은 필요한 범위를 제공합니다.

204[2-6]

답변2

SSH를 통해 tar 스트림을 사용할 수 있습니다.

tar cvf --include='204[2-6]' - . | ssh user@target "cd /home/destination/folder; tar xvf -"

답변3

배쉬를 사용하세요버팀대 확장표현:

scp -r {2042..2046} user@target:home/user/destination_folder

버팀대 확장이 발생한다는 점에 유의하세요.~ 전에매개변수 확장이므로 다음과 같이 작성할 수 없습니다.

start=2042
end=2046
scp -r {$start..$end} user@target:home/user/destination_folder

없이eval

관련 정보