cp * 不能复制所有文件

cp -r * /target 并不能讲当前目录下的所有文件都复制,以点号.开头的文件不能被复制

1
2
3
4
5
6
bobo@ubuntu:~$ ls
test1  test2
bobo@ubuntu:~$ ls test1/
a.txt  b.txt
bobo@ubuntu:~$ ls -a test1/
.  ..  a.txt  b.txt  .c.txt

当前目录下有两个文件夹 test1test2, test1 中包含了三个文件 a.txt b.txt .c.txt

1
2
3
4
5
6
7
bobo@ubuntu:~$ cp -r test1/* test2/
bobo@ubuntu:~$ ls -a test2/
.  ..  a.txt  b.txt
bobo@ubuntu:~$ rm -f test2/*
bobo@ubuntu:~$ ls test2/
bobo@ubuntu:~$ ls -a test2/
.  ..

通过cp -r test1/* test2/ 将文件全都复制到test2文件夹中,可以看到以点号.开头的文件.c.txt并没有被复制过去

1
2
3
4
bobo@ubuntu:~$ rm -rf test2
bobo@ubuntu:~$ cp -r test1/ test2
bobo@ubuntu:~$ ls -a test2
.  ..  a.txt  b.txt  .c.txt

删除test2后,直接复制 test1文件夹能够将所有的文件全都复制过去.