我测试了该cp
命令,它只会复制单个文件。例如,我输入cp
后跟确切的文件名,然后输入目录,文件就被复制了。但是,当我输入目录和目标目录时,计算机上没有任何变化。我以为cp
应该复制目录中的内容。
我已尝试过多次。
答案1
当你使用cp如果不带任何参数,则默认复制文件,如下所示
cp sourcefile destinationLocation
#will copy sourcefile to the specified destinationLocation
但是如果你想复制一个目录,你需要像这样指定递归参数
cp -R dir1 dir2 #copies dir1 to dir2
cp -R dir dir2 dir3 #copies dir1 & dir2 to dir3
理想情况下,您可以指定任意数量的文件到单个目标,所有文件之间用空格分隔。但是,下面将复制目录及其权限
sudo cp -rp /home/me /media/backup/me
-p same as --preserve=mode,ownership,timestamps
或者你可以使用 rsync
sudo rsync -a /home/me/ /media/backup/me/
-a, --archive
Note that -a does not preserve hardlinks, because finding multiply-linked
files is expensive. You must separately specify -H.
使用 rsync 复制时请不要忘记末尾的斜杠。查看每个命令的手册页,了解在终端上输入这些命令的选项男人 cp或者rsync 命令
答案2
使用
cp -R
它指定递归复制,即复制所有子目录和文件。用于man cp
查找 cp 的更多开关。
答案3
cp
默认情况下不复制目录。从man 1posix cp
:
2. If source_file is of type directory, the following steps shall be
taken:
a. If neither the -R or -r options were specified, cp shall write
a diagnostic message to standard error, do nothing more with
source_file, and go on to any remaining files.
你应该收到如下消息:
cp: omitting directory '...'
例如:
$ cp Documents Pictures
cp: omitting directory ‘Documents’
从手册页可以看出,使用-r
或-R
与 一起使用cp
:
cp -R Documents Pictures