相关疑难解决方法(0)

以与Bash相同的方式转义文件名

当我使用"tab"键时bash(当你开始输入文件名并希望它完成时),bash正确地转义文件名,如果我使用那个"转义"文件名,它就可以了.

例如:

An-Beat - Mentally Insine (Original Mix).mp3=> bash使用"TAB"逃脱 之后An-Beat\ -\ Mentally\ Insine\ \(Original\ Mix\).mp3

我正在搜索一个函数bash,它将以"tab"转义文件名的方式转义文件名.

linux bash escaping

18
推荐指数
3
解决办法
3万
查看次数

scp失败,出现"协议错误:文件名与请求不匹配"

我有一个脚本使用SCP从AWS上的远程Linux主机上提取文件.在每晚运行相同的代码大约6个月没有问题之后,它今天开始失败了protocol error: filename does not match request.我在下面的一些更简单的文件名中重现了这个问题:

$ scp -i $IDENT $HOST_AND_DIR/"foobar" .
# the file is copied successfully

$ scp -i $IDENT $HOST_AND_DIR/"'foobar'" .
protocol error: filename does not match request
# used to work, i swear...

$ scp -i $IDENT $HOST_AND_DIR/"'foobarbaz'" .
scp: /home/user_redacted/foobarbaz: No such file or directory
# less surprising...
Run Code Online (Sandbox Code Playgroud)

我单引号的原因是我最初抓住了名字中带有空格的文件.为了处理空间,我已经做$HOST_AND_DIR/"'foo bar'"了好几个月,但从今天开始,它只会接受$HOST_AND_DIR/"foo\ bar".所以,我的问题固定的,但我仍然对正在发生的事情感到好奇.

我用Google搜索了错误信息,但我没有看到任何真实的提及,这让我感到惊讶.

所涉及的两个主机都有OpenSSL 1.0.2g输出ssh -v localhost,并bash --versionGNU bash, version …

ssh scp

12
推荐指数
1
解决办法
2975
查看次数

如何 scp 名称中带有空格的目录

我现在正在尝试将整个目录从一个集群镜像复制到另一个集群。但是当名称中有空格时它会失败并且我无法弄清楚如何解决这个问题,因为似乎 scp 认为我正在复制多个文件。我正在使用一个变量来标记我需要的路径,因此通过添加反斜杠似乎不容易解决。

这是我正在使用的代码:

if ssh user@ip -i key test -d "'$current_dir'"; then
 echo "Directory exists. Ready to copy $dir_name."
 scp -i key -r "$current_dir/$dir_name" user@$ip:"$current_dir/$dir_name"
else
 echo Directory doesn\'t exist. Making a new directory.
 ssh user@$ip -i key mkdir "'$current_dir'"
 scp -i key -r "$current_dir/$dir_name" user@$ip:"$current_dir/$dir_name"
fi
Run Code Online (Sandbox Code Playgroud)

我试过单引号、双引号和带双引号的单引号,但它们都不起作用。有人可以帮我解决吗?顺便说一句,代码中的 mkdir 语句有效。

bash scp

2
推荐指数
1
解决办法
5899
查看次数

标签 统计

bash ×2

scp ×2

escaping ×1

linux ×1

ssh ×1