scp: copying filenames with colons
2008-07-19 Sat – 18:11:07# annoying:
[jem:pgl]:~/p/misc_useful $ /usr/bin/scp scp\:copying-filenames-with-colons-in-them.txt localhost:/dev/null
ssh: scp: Name or service not known
# sorted:
[jem:pgl]:~/p/misc_useful $ /usr/bin/scp ./scp\:copying-filenames-with-colons-in-them.txt localhost:/dev/null
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 12:2b:3a:4e:be:6f:41:f2:20:4c:1b:ee:6a:46:35:61.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
pgl@localhost's password:
scp:copying-filenames-with-colons-in-them.txt 100% 0 0.0KB/s 00:00
Executive summary: filenames with :colons: break scp, unless they're prefixed with a path.
Why: scp has no way of telling that a file called "file:name" is isn't the user specifying host:path, which is the usual way it's used. To disambiguate this for scp, prefix the filename with its path (either relative to your current directory, or a full path, it doesn't matter); ie, instead of "scp filename:with:colons", it's "scp ./filename:with:colons".
Tags: bash, filenames, howto, misc-useful, scp, shell escapes, shell scripting, ssh