I'm running scp and copying a folder from remote server, I'm running with -rl , so i see the files being copy, is it possible to skip current file some way?
No you can't. But you can stop
scp and use
rsync instead. It will copy only the differences left from the partial copy and you can exclude any files or dirs you don't want to transfer.
rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/
No, not with
-r or any other syntax that performs multiple file transfers within one
scp also follows the UNIX paradigm: write programs that provide simple, precise functionality that can be chained together in interesting ways. This means it would be possible to write a loop that interactively performs individual invocations of the command, one per file. You would then be able to break out of the individual commands as they're being run. (Ctrl-C)
The code for this is being left as an exercise to the reader, but the need for this loop to execute within an interactive shell must be emphasized. Breaking out of a non-interactive shell would terminate the entire job.
Yes you can!
Let's list the remote directory and copy each file separately. Then hit ctrl-c for each file that you don't want to copy:
OLD_IFS="$IFS" IFS=$'\n' for file in `ssh user@host ls /remote/directory/` do echo user@host:/remote/directory/$file /local/directory/ done; IFS="$OLD_IFS"
OLD_IFS is here to handle files with spaces in them.