Hacker News new | ask | show | jobs
by Giroflex 2919 days ago
What about good old scp?

    scp file.txt user@host:/dest/dir/
4 comments

Or rsync?

rsync -zvh file.txt user@host:/dest/dir/

So many ways to do this :)

rsync has always been my favourite because it makes the most sense to me (and the --help/man page is easy to read).

rsync -n -avh --progress source destination:~/asdf/ for a dry run followed by ctrl-p, ctrl-a, alt-f, alt-d, alt-d to remove the -n flag and then execute that for the real thing.

Occasionally though, I'll also use sftp if I'm just pulling one thing - perhaps even after sshing to the remote machine.

For all of these, SSH keys should be set up (and desktop logins secured) to make life easier.

As for Android, adb push and adb pull -a seems to work better than mtp:// or AirDroid in my experience.

After all these years, I still can't keep straight when I need a trailing slash in rsync, and when I need to not have it.
If you think of it in terms of archives and whether you want to "extract" into the current directory, or a new directory within the current one; that might help.

rsync source destination will plonk the entire source directory and put it inside destination as a neat bundle.

rsync source/ destination will take the contents of source (but not the directory source itself) and plonk it in destination

I found the info page a little dry but it does describe it succintly:

    rsync -av /src/foo /dest
    rsync -av /src/foo/ /dest/foo
For some reason though, my head freaks out when it sees "foo" and "bar", but all they're saying is that it does the same thing.

If in doubt though, just chuck everything into the destination ~/temp/ or ~/asdf/ and sort it out later.

To be honest though, most of the time I just use fish shell's autosuggestions to guide me along.

What if you don't have network and login access to the other person's computer?
I usually go straight to tar & ssh over scp since you can do directories where you can't with scp. But yeah, if you just have some files scp works.
You can obviously send directories with scp, just use -r. Or am I missing something?
Recently used it to copy half a terabyte of stuff on my home network. Unsure about the exact specification but it supported the same flags as cp as far as I could tell.
Well I'll be damned.. not sure what lead me to think this.
Yes -r works for copying directories. I do it all the time
scp performs very slowly with directories containing many small files; "tar|ssh tar" does fine with that.