在Linux服务器上的文件名中带有换行符的文件传输

用户名

我的服务器上的一些文件由于断行而无意中保存了。它们file?name.txt在查看服务器上的文件时显示使用scp将这些文件传输到本地计算机不起作用,因为出现“无法写入文件”错误。导致此错误的问题已得到解决,但我无法访问这些文件。获取这些文件的最佳方法是什么?

斯蒂芬·查泽拉斯

换行符与Unix中文件名中的任何其他字符一样有效。对于shell,该字符具有特殊含义(它分隔命令),因此需要像其他任何特殊字符一样引号(例如空格;|...)。

在类似Bourne的shell中,可以用单引号或双引号引起来:

ls -d 'a
b'

或者:

ls -d "a
b"

一些炮弹(ksh93zshbashmksh,FreeBSD的sh至少)也支持:

ls -d $'a\nb'

对于scp,请注意,文件名将传递到远程用户的登录shell。当您这样做时:

scp file user@host:something

最后调用用户的登录shellhost来解释以下内容:

scp -t something

命令行(至少使用openssh)。因此,如果该外壳类似于Bourne,则必须为:

scp 'src/a
b' user@host:"dest/'a
b'"

如果您这样做:

scp 'a
b' user@host:dest/

或者

scp -r src user@host:dest/

服务器上的sshd运行:

scp -t dest/

或者

scp -r -t dest/

并且文件名不会在远程Shell命令行上传递,而是嵌入在客户端和服务器之间的数据流中scp但是,我发现(至少使用openssh 7.2p2)换行符最终转换为\^J(3个字符)。

因此,您可能希望使用其他机制来ssh更可靠地传输文件,例如rsyncsftptar

tar cf - src | gzip | ssh user@host 'cd dest && gunzip | tar xpf -'

保留硬链接,软链接和其他文件属性也会更好。如果文件名包含非ASCII字符,则可能还需要考虑字符集转换。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

文件名中的换行符

来自分类Dev

服务器文件中的所有换行符已删除

来自分类Dev

文件名中带有逗号 (",") 的 Express 服务器文件下载

来自分类Dev

删除文件名中的换行符

来自分类Dev

递归删除文件名中的换行符

来自分类Dev

Microsoft Enterprise Library-带有服务器名的文件名

来自分类Dev

如何查找文件名中包含换行符的文件?

来自分类Dev

哪些文件系统支持文件名中的换行符?

来自分类Dev

使用 .get() 在我的服务器上的文件夹中检索所有文件名的数组

来自分类Dev

从文件名末尾删除换行符

来自分类Dev

plesk服务器文件上的文件名中的%2B未显示

来自分类Dev

linux服务器上的cakephp helper文件名大写问题

来自分类Dev

请参考Dockerfile中包含换行符的文件名

来自分类Dev

用`mv`将换行符添加到文件名中

来自分类Dev

如何从服务器请求中获取文件名?

来自分类Dev

如何从服务器请求中获取文件名?

来自分类Dev

python web服务器如何识别url中没有文件名?

来自分类Dev

在所有服务器共享中搜索通配符文件名

来自分类Dev

读取带有换行符的转义字符的Java文件

来自分类Dev

读取带有不规则换行符的文件

来自分类Dev

带有多个换行符的Python文件readline问题

来自分类Dev

创建带有换行符的XML文件

来自分类Dev

读取带有换行符的文件作为猪中的元组

来自分类Dev

在字符串中读取带有换行符的 csv 文件失败

来自分类Dev

带有换行符的 Bash 变量在 csv 文件中未正确表示

来自分类Dev

Excel for Mac VBA-另存为HTML在文件名中添加了意外的换行符

来自分类Dev

将脚本传输到新服务器后,编码文件名不匹配beetwen SQL和文件系统

来自分类Dev

从服务器传输文件

来自分类Dev

从Android到服务器的带有“身份验证”的多个文件传输协议

Related 相关文章

  1. 1

    文件名中的换行符

  2. 2

    服务器文件中的所有换行符已删除

  3. 3

    文件名中带有逗号 (",") 的 Express 服务器文件下载

  4. 4

    删除文件名中的换行符

  5. 5

    递归删除文件名中的换行符

  6. 6

    Microsoft Enterprise Library-带有服务器名的文件名

  7. 7

    如何查找文件名中包含换行符的文件?

  8. 8

    哪些文件系统支持文件名中的换行符?

  9. 9

    使用 .get() 在我的服务器上的文件夹中检索所有文件名的数组

  10. 10

    从文件名末尾删除换行符

  11. 11

    plesk服务器文件上的文件名中的%2B未显示

  12. 12

    linux服务器上的cakephp helper文件名大写问题

  13. 13

    请参考Dockerfile中包含换行符的文件名

  14. 14

    用`mv`将换行符添加到文件名中

  15. 15

    如何从服务器请求中获取文件名?

  16. 16

    如何从服务器请求中获取文件名?

  17. 17

    python web服务器如何识别url中没有文件名?

  18. 18

    在所有服务器共享中搜索通配符文件名

  19. 19

    读取带有换行符的转义字符的Java文件

  20. 20

    读取带有不规则换行符的文件

  21. 21

    带有多个换行符的Python文件readline问题

  22. 22

    创建带有换行符的XML文件

  23. 23

    读取带有换行符的文件作为猪中的元组

  24. 24

    在字符串中读取带有换行符的 csv 文件失败

  25. 25

    带有换行符的 Bash 变量在 csv 文件中未正确表示

  26. 26

    Excel for Mac VBA-另存为HTML在文件名中添加了意外的换行符

  27. 27

    将脚本传输到新服务器后,编码文件名不匹配beetwen SQL和文件系统

  28. 28

    从服务器传输文件

  29. 29

    从Android到服务器的带有“身份验证”的多个文件传输协议

热门标签

归档