SCP递归文件传输顺序

Dmi*_*sky 11 ssh scp

想知道在传输文件时是否可以指定排序顺序scp

例如: $ scp -r "user@host:/path/to/download/" .

[... files download in a seemingly random order ...]

由于这可能与scp功能有关,是否有某种方法可以在源(服务器)端配置 ssh 以便传输文件,例如,按文件名升序?

dne*_*net 5

我应该解决 的问题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
Run Code Online (Sandbox Code Playgroud)

标志-T使其tar从下一个参数读取要打包的文件名,-表示标准输入。现在,您只需将文件名通过管道传输到其中,该文件名可以来自ls(如示例中所示)或find用于更棘手的任务。通过此设置,您可以用来sort指示通过 SSH 传输文件的确切顺序(在本例中,-r文件按相反的字母顺序排序)。仅-v添加到最终的 unpacking 中tar,以便顺序可见。

  • @dimadima,如果你非常喜欢这个答案,也许你可以[接受答案](http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow) 。 (2认同)