问题描述

我是Linux新手,我想将文件从远程复制到本地系统…现在,我在Linux系统中使用scp命令。当我尝试将其复制时,我有一些文件夹或文件名带有空格文件,它显示错误消息:“没有这样的文件或目录”

我试过了:

scp ael5105@192.168.0.200:'/home/5105/test/gg/Untitled Folder/a/qy.jpg' /var/www/try/

我在网上看到了一些参考资料,但我不太了解,有人可以帮忙吗?

复制期间如何在文件名或目录名中转义空格…

最佳思路

基本上,您需要对它进行两次转义,因为它是在本地然后在远端进行转义。

您可以选择几种方式(bash中):

scp user@example.com:"'web/tmp/Master File 18 10 13.xls'" .

scp user@example.com:"web/tmp/Master\ File\ 18\ 10\ 13.xls" .

scp user@example.com:web/tmp/Master\\\ File\\\ 18\\\ 10\\\ 13.xls .

次佳思路

作品

scp localhost:"f/a\ b\ c" .

scp localhost:'f/a\ b\ c' .

不起作用

scp localhost:'f/a b c' .

原因是在路径传递给scp命令之前,shell会解释字符串。因此,当到达远程服务器时,远程服务器正在寻找带有未转义引号的字符串,但失败

要查看实际情况,请使用-vx选项启动 shell 程序,即bash -vx,它将在运行命令时显示命令的内插版本。

第三种思路

您也可以执行以下操作:

scp foo@bar:"\"apath/with spaces in it/\""

第一级报价将由scp解释,然后第二级报价将保留空格。

第四种思路

使用3个反斜杠转义目录名称中的空格:

scp user@host:/path/to/directory\\\ with\\\ spaces/file ~/Downloads

应该从名为directory with spaces的远程目录中将file复制到您的Downloads目录。

第五种思路

我很难将其用于包含空格的文件名的shell变量。由于某些原因使用

file="foo bar/baz"

scp user@example.com:"'$file'"

就像@Adrian的回答似乎失败了。

事实证明,最有效的方法是使用参数扩展将反斜杠添加到空格之前,如下所示。

file="foo bar/baz"

file="${file//\ /\\\ }"

scp user@example.com:"$file"

参考资料

linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格?相关推荐

  1. linux命令看文件内容,Linux文件内容查看相关命令

    1.more命令 在Linux中,more命令是一个基于vi编辑器的文本过滤器,它能以全屏的方式按页显示文本文件的内容,more里面内置了一些快捷键. (1)命令语法 more(选项)(参数) (2) ...

  2. linux命令帮助怎么看,Linux命令帮助

    Linux命令帮助教程 在 Linux man命令详解 概述 man 命令,它是 Manual pages 的缩写,它是 Linux 系统中在线软件文档的一种普遍的形式,其内容包括计算机程序(包括库和 ...

  3. 离线调用linux命令,GitHub - rinetd/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  4. 实验楼linux命令,GitHub - encorechow/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  5. spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  6. linux命令大全chm版本,Linux命令大全手册下载

    linux命令大全chm版是精心修改版,去除了官方原版的许多错误,以及未来得及更新的部分,实用性很强,对于正在掌握linux系统的程序员们来说,是开发之前必须学会的东西,操作方便.检测迅速,举一反三靠 ...

  7. linux命令行 正则,在Linux命令行中使用正则表达式

    上一节我们介绍过grep命令在搜索文本信息时的基本用法,其实,grep命令还可以配合正则表达式执行更加复杂的搜索操作. 本节我们将对如何在Linux命令行中使用正则表达式进行介绍. 所谓正则表达式,就 ...

  8. linux命令和选项作用,linux tar 命令中 -f选项作用

    2011-06-25 回答 可以看看tar的man页,上面说得很清楚了(看英文的man页,中文的已经过时了,好多地方不对). 对于tar命令,x表示解包(不是解压缩),v表示显示详细过程,f表示使用文 ...

  9. linux命令 正则表达式,详解Linux命令中的正则表达式

    详解Linux命令中的正则表达式 Mark Do 2017年9月19日 暂无评论 阅读 981 次 命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式 ...

最新文章

  1. Luogu P2619 [国家集训队2]Tree I(WQS二分+最小生成树)
  2. mybatis映射器${}和#{}的区别
  3. 笔记-信息系统安全管理-安全审计
  4. 编程方法学21:监听器和迭代器回顾
  5. 计算机内存延迟,CPU性能差距竟然在这里 延迟不止在内存
  6. 嵌入式数据库SQLite的编译、安装和使用[ZT]
  7. Linux Crontab内环境变量与Shell环境变量的关系及解决问题的办法
  8. 灰色滤镜,网页灰色代码
  9. OS X 终端修改备忘录
  10. 集成学习的前世今生(一)
  11. docker部署redies高可用集群实战
  12. 单片机和嵌入式系统的区别
  13. CS5460基本读写程序(无bug版本)
  14. AR室内导航-Three.js
  15. 【Android】通过命令行adb install 将apk下载到手机之中
  16. 给tensor增加维度 或 减少维度
  17. python写抽奖转盘_python实现转盘效果 python实现轮盘抽奖游戏
  18. Google发布Chrome操作系统Chromebook和Chromebox 走亲民路线
  19. SpringBoot-Mybatis-Plus配置
  20. 人生如梦游戏间,RPG游戏开源开发讲座 JAVA篇 4 ——一步莲华

热门文章

  1. centos6.x redhat6.x 升级openssh8.7
  2. SprinBoot 集成 Flowable 工作流引擎镜像制作
  3. org/springframework/util/backoff/BackOff
  4. 主机ssh升级到6.7以上版本后,使用jsch jar包ssh连接不上报Algorithm negotiation fail问题的解决办法
  5. centos7以普通用户开机启动某个服务或者指定脚本
  6. Vue优化策略_项目发布_01
  7. 服务器系统功能描述,Hadoop mapreduce核心功能描述
  8. python制作远程桌面控制_Python 远程桌面协议RDPY简介
  9. python中函数定义_Python中函数的定义与使用
  10. 结构损伤检测与智能诊断 陈长征_宿迁厂房安全检测多少钱介绍说明