The ..
pattern in the {.,}*
expansion represents the parent directory (one level above the current directory). This causes the error because scp
tries to include the parent directory, which is not what you intend.
Solution:
To avoid including ..
, you can modify the pattern to match hidden files and directories without the ..
directory. Here's the corrected command:
bash
scp -r fapuser@158.220.199.227:/home/fapuser/{.[!.],}* .
{.[!.],}*
ensures that.
followed by any character except.
is included, which prevents..
from being matched.- This pattern will still match hidden files and directories like
.bashrc
and.config
.
This should fix the issue with the unexpected ..
directory error.
The reason hidden files aren't transferred is because the *
wildcard doesn't match files that start with a dot (.
) by default. To include those hidden files, you need to use the {.,}*
pattern. Here's how it works:
*
matches all non-hidden files (files that don't start with a dot).{.,}*
matches both hidden files (starting with a dot) and regular files. The{.,}
part tells the shell to consider both an empty prefix (""
) and a dot ("."
) as valid matches before the filename.
This way, hidden files like .bashrc
will be included in the transfer.
In Bash (and most other shells), the *
wildcard is expanded by the shell before the actual command (like scp
) is executed.
Here's what happens:
- Wildcard Expansion : Bash interprets the
*
wildcard and expands it to match all the filenames in the specified directory that are not hidden (i.e., do not start with a dot.
). - Command Execution : Once the shell expands the wildcard, it passes the resulting list of filenames to the command (in your case,
scp
).
For example:
bash
scp -r fapuser@158.220.199.227:/home/fapuser/* .
If /home/fapuser/
contains files file1
, file2
, and .bashrc
, Bash will expand *
to file1 file2
and not .bashrc
, so only file1
and file2
will be passed to scp
.
This is why you need to use {.,}*
if you want to match both hidden and non-hidden files; Bash will expand that pattern to include hidden files as well.
🚀 Looking for reliable cloud servers? Check out @Vultr! Great performance, easy setup, and affordable pricing. Use my ref link to get started: https://www.vultr.com/?ref=7922375 🌍💻 #CloudComputing #Vultr