Masks
To use the following features of WinSCP you need to specify a mask (wildcard) to select files (or other things):
- Text file mask for text mode transfers.
- Ignore mask for transfers.
Filename Mask
When specifying the mask you can use following patterns:
Pattern | Meaning | Example |
---|---|---|
* |
Matches any number (including zero) of arbitrary characters. | *.doc; about*.html |
? |
Matches exactly one arbitrary character. | photo????.jpg |
[abc] |
Matches one character from the set. | index_[abc].html |
[a-z] |
Matches one character from the range. | index_[a-z].html |
All other characters are treated literally.
To escape character with special meaning (*?[
) enclose
it into set pattern, e.g. filewithstar[*]
.
Directory Mask
Particularly when specifying an include mask
for transfers, bear in mind that it is
applied to directories as well, so that *.bak
will only
match backup files located in the current directory (unless
you happen to have a subdirectory whose own name ends in ".bak",
in which case it will be applied to all backup files
in there too).
A mask ending with slash matches only directories. The mask
*/
matches any directory.
For example to transfer only HTML files located in any
directory, use the include mask */; *.html
(see below for combining masks).
To make operation non-recursive use exclude mask */
.
Path Mask
When the mask selects files and it makes sense to select them based on directory, you can extend the mask
with a path mask. You should separate the path mask from the filename mask by a slash. For example
mask /home/martinp/*.txt
matches all text files within the directory, but not in subdirectories.
To match all text files within subtree, use mask /home/martinp/*.txt; /home/martinp/*/*.txt
(Simpler, but less precise, form would be /home/martinp*/*.txt
).
For a relative path mask it makes no difference whether you use back (\
) or forward slashes (/
); the
mask will always work for both local and remote paths. For example, the mask
*/public_html/*.bak
will match backup files both in D:\Documents\public_html
and /home/martinp/public_html
. If you want to match directories only, add a slash at the end
of the mask.
You can also specify full path to specific file or directory, both local and remote.
For example if you want to match only specific .csv
directory, not all,
use /home/martinp/data/.csv/
instead of .csv/
.
Particularly when specifying an include mask for transfers, bear
in mind that it is applied to directories as well, so that *.bak
will only match backup files
located in the current directory (unless you happen to have a subdirectory whose own name ends in ".bak", in
which case it will be applied to all backup files in there too).
The mask */
matches any directory. For example to transfer only
HTML files located in any directory, use the include
mask */; *.html
.
Exceptions
For convenience, a masks *.*
and *.
are exceptions matching any file and any file
without an extension, respectively, even if its name does not include any dot.
Combining masks and exclude mask
You can combine several masks using semicolon (;
) or comma (,
).
You can add exclude mask by separating it by pipe (|
)
from the include mask. To use exclude mask only, start with
pipe straight away.