我不小心在没有主目录的情况下向我的系统添加了一个用户(我忘记在 useradd 中放置 -d 和 -m 标志)。我没有删除用户并重新开始,而是尝试简单地 mkdir 主目录并自己从 /etc/skel 复制文件。但是,我收到以下奇怪的错误:
user@host:~$ sudo cp -rv /etc/skel/* /home/newuser/
cp: cannot stat `/etc/skel/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)
但是,以下两个命令按预期工作:
user@host:~$ sudo cp -rv /etc/skel/.bashrc /home/newuser/
user@host:~$ cp -rv ~/testfolder1/* /testfolder2/
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么我收到初始错误。
当 glob 表达式 ( /etc/skel/*) 扩展为无文件时,默认情况下该表达式作为纯字符串保留在命令中。在这种情况下,它扩展为没有文件,因为 /etc/skel 中的所有文件都是点文件。因此,您试图复制 /etc/skel 中的文字文件“*”,但该文件不存在。
见http://www.gnu.org/software/bash/manual/bashref.html#Filename-Expansion