Ignore Files when copying using scp

How to ignore certain files when using the scp command?
I have the following file structure on the Linux server :

Everything >

  • NeedThis
  • NeedThisToo
  • DontNeedThis

I want to get NeedThis and NeedThisToo and ignore DontNeedThis.
I can’t just use two separate scps as in reality there are a few hundred files.

Neither can I move nor copy anything (part of this problem, can be seen as a set condition). Does anyone know a solution to my problem?

Asked By: Jip Helsen


Using the rsync command in place of scp allows us to be more precise with what we want to exclude. Assuming you want to do a recursive copy of some remote directory to a local directory but want to exclude a name from the operation:

rsync -av --exclude=DontNeedThis user@remote:/some/dir/ /some/dir

The above command would recursively copy the contents of the remote directory /some/dir into the local directory /some/dir, while avoiding anything named DontNeedThis (where DontNeedThis may be some quoted pattern).

Note that the final / on the source path is significant. Without it, you’d copy the directory, not its contents.

For a full explanation of the patterns that you may use to exclude or include things, see the section called "INCLUDE/EXCLUDE PATTERN RULES" in the rsync manual.

Answered By: Kusalananda
Categories: Answers Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.