Linux/UNIX:带有冒号(:)的scp/rsync文件名

时间:2020-01-09 10:43:30  来源:igfitidea点击:

如何复制带有冒号(:)名称的文件。
当我执行以下命令以将file:name.txt复制到名为server1的远程主机时:

scp file:name.txt user@server1:/path

我收到以下错误:

ssh: Could not resolve hostname s: Name or service not known
ssh:无法解析主机名:名称或者服务未知

如何复制带有scp或者rsync并带有冒号的文件? 可以使用绝对或者相对路径名来明确显示本地文件名,以避免scp将包含:的文件名视为主机说明符。换句话说,使用以下语法:scp ./file:name.txt user @ server1:/path/to/dest

或者

scp /path/to/src/file:name.txt user@server1:/path/to/dest

或者

rsync /path/to/src/file:name.txt user@server1:/path/to/dest

在此示例中,我正在将名为mysql-blog-db.23-02-2014-11:10:06.gz的文件处理到名为backup-test-server13的服务器上

rsync 'mysql-blog-db.23-02-2014-11:10:06.gz' Hyman@backu-test-server13:~

示例错误/输出:

The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1083) [receiver=2.6.9]

您将使用scp命令获得相同的结果

scp 'mysql-blog-db.23-02-2014-11:10:06.gz' Hyman@backu-test-server13:~

示例错误/输出:

ssh: Could not resolve hostname mysql-blog-db.23-02-2014-11:10:06.gz: nodename nor servname provided, or not known

如何用冒号来scp/rsync文件名?

在此示例中,我使用scp命令将名为mysql-blog-db.23-02-2014-11:10:06.gz的文件处理到名为backup-test-server13的服务器上:

scp ./mysql-blog-db.23-02-2014-11\:10\:06.gz Hyman@backu-test-server13:~

或者

scp /tmp/mysql-blog-db.23-02-2014-11\:10\:06.gz Hyman@backu-test-server13:~

或者传递一些其他选项:

scp -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/Hyman/.ssh/my-keys -P 22 ./mysql-blog-db.23-02-2014-11\:10\:06.gz Hyman@backu-test-server13:~

输出示例:

Warning: Permanently added '173.xx.yy.zz' (RSA) to the list of known hosts.
mysql-blog-db.23-02-2014-11:10:06.gz

这是rsync命令的语法:

rsync -av ./foo:bar:file.txt [email protected]:/tmp
rsync -av $HOME/data/foo:bar:file.txt [email protected]:/tmp