로 파일을 전송할 때 정렬 순서를 지정할 수 있는지 궁금합니다 scp
.
예를 들면 다음과 같습니다.
$ scp -r "user@host:/path/to/download/" .
[... files download in a seemingly random order ...]
아마도 이것이 어떻게 scp
기능 과 관련이있을 수 있기 때문에 파일이 오름차순으로 파일과 같이 전송되도록 소스 (서버) 측에서 ssh를 구성하는 방법이 있습니까?
로 파일을 전송할 때 정렬 순서를 지정할 수 있는지 궁금합니다 scp
.
예를 들면 다음과 같습니다.
$ scp -r "user@host:/path/to/download/" .
[... files download in a seemingly random order ...]
아마도 이것이 어떻게 scp
기능 과 관련이있을 수 있기 때문에 파일이 오름차순으로 파일과 같이 전송되도록 소스 (서버) 측에서 ssh를 구성하는 방법이 있습니까?
답변:
의 문제와 tar
파이프 투명도를 해결해야했습니다 ssh
. 아래에서 예를 볼 수 있으며 원격 PC의 이름은 bar
입니다. 테스트하기 /tmp/foo
전에을 실행하여 세 개의 빈 파일을 만들었습니다 ssh bar 'mkdir /tmp/foo ; touch /tmp/foo/{a,b,c}'
.
$ ssh bar 'cd /tmp/foo ; ls | sort -r | tar -cT -' | tar -xv
c
b
a
$ ls -l a b c
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 a
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 b
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 c
의 -T
플래그는 tar
다음 매개 변수에서 압축 할 파일 이름을 읽고 -
표준 입력을 의미합니다. 이제 파일 이름을 파일로 파이프하면됩니다 ls
(예제에서와 같이) find
. 이 설정을 사용 sort
하면 SSH를 통해 파일이 전송되는 정확한 순서 (이 경우 -r
알파벳순으로 정렬 된 파일) 를 나타내는 데 사용할 수 있습니다 . 는 -v
단지 풀고, 마지막에 추가 된 tar
순서가 볼 수 그래서.
sort
에서 bar
어떻게 든 원격 명령이 작업을 수행?
scp
각 파일에 대한 메타 데이터와 내용을 전송하는 것은 서로 다른 "프로토콜"을 사용합니다. 결과를 반복 할 수는 있지만 이름에 공백이있는 파일을 처리해야합니다.