我想scp
从远程服务器到我的本地计算机一个包含大约 115k json 文件的大文件夹。
假设我使用这样的东西:
scp username@remote:/remote_path/*.json /local_path/
但是,当我尝试这样做时,我得到了回应:
argument list too long
那我怎样才能传输文件呢?
Kus*_*nda 13
考虑传输整个目录而不是单个文件:
scp -r username@remote:/remote_path /local_path/
Run Code Online (Sandbox Code Playgroud)
如果这会传输太多并且您真的只想传输名称以.json
单个目录结尾的文件,您可能需要考虑rsync
(它有更好的工具来过滤传输的内容):
rsync -av --include='*.json' --exclude='*' username@remote:/remote_path/ /local_path/
Run Code Online (Sandbox Code Playgroud)
这只会复制名称以 结尾的文件,.json
而忽略其他名称。/
这里需要在源上终止。
该-a
选项使传输也传输文件元数据(基本上是时间戳)并向下rsync
递归到子目录(但这受--exclude
上述限制),而-v
用于详细操作。
第三种选择是创建tar
远程目录的存档,或者至少是您想要传输的文件,然后scp
将该存档转移到本地系统。事实上,这可以一次性完成ssh
,模拟scp -r
:
ssh username@remote 'tar -c -f - -C /remote_path .' | tar -x -f - -C /local_path
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3114 次 |
最近记录: |