你是不是敲错了
百度了一下,类似的命令是 cp -a /etc/skel/. /home/$USER
,主要用来给新建的用户初始化一个主目录用的......不知道你加了 * 会有什么影响......
P.S. 难道 .* 里面把当前文件夹和上级目录的 . 和 .. 都算在里面了?所以复制的时候把上面一层的内容也带上了......
试了一下,deepin、ArchLinux、银河麒麟都会出现同样结果。个人认为cp -a /etc/skel/.*命令中,“.*”也包括了“..”,即上一级目录,所以也拷贝了/etc下的内容。
在终端执行 ls /etc/apt/.* ,结果可以看到分别显示了 /etc/apt/. 和 /etc/apt/.. 的内容
看来四楼正解。
看来四楼正解。
多谢肯定
楼主,命令的意思是将 /etc/skel
目录下的所有文件和子目录复制到 /home/username
目录下。其中,-a
参数表示保留文件的属性,如时间戳、权限等。
cp [options] source... directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
cp -a
: 递归复制,复制的数据会保留原有数据的时间戳等信息(具体:时间戳+所有权+复制连结文件属性而非档案本身)
cp -r
: 递归复制,复制的数据会使用新的时间戳等信息
复制连结文件属性而非档案本身:例如是软链接的话,复制的是软链接的属性(时间戳等信息),而不是实际文档的
使用 cp -a
相当于将原数据原封不动的拷贝过来,不改变里面的任何信息
使用 cp -r
拷贝数据,拷贝的结果是生成新的时间戳等信息
在终端执行 ls /etc/apt/.* ,结果可以看到分别显示了 /etc/apt/. 和 /etc/apt/.. 的内容
我测试了,只有debian12不一样,debian12不会复制上级目录
在终端执行 ls /etc/apt/.* ,结果可以看到分别显示了 /etc/apt/. 和 /etc/apt/.. 的内容
debian12的/var/spool/mail文件下是空的,这个和deepin,centos也不一样
我测试了,只有debian12不一样,debian12不会复制上级目录
执行echo $SHELL,看看是否使用的shell不同
Popular Ranking
ChangePopular Events
More
今天上课,老师提了一个问题。
cp -a /etc/skel/.* /home/username;
我在debian上使用此命令,只会复制skel目录下的隐藏文件,但是老师使用的rhel,还有同学用的centos,不仅复制了skel下的隐藏文件,也复制了etc目录下的文件,deepin也一样,唯独debian不同。用的debian12系统,会不会是debian12逻辑变了。