例子

例子

我想将一个目录复制到另一个目录中。

例如,cp -r dir1 dir2将 dir1 的内容复制到 dir2 中。我想将 dir1 本身复制到 dir2 中,这样如果我ls dir2输出它dir1,而不是 dir1 内部的任何内容。

答案1

就像你做的那样:

cp -r dir1 dir2

你将会有目录1(及其内容)里面目录2。如果您不相信,请尝试;-)。

复制内容的命令目录1进入目录2是:

cp -r dir1/* dir2

答案2

查看cp(还有mv)的手册:

   cp [OPTION]... [-T] SOURCE DEST
   cp [OPTION]... SOURCE... DIRECTORY
   cp [OPTION]... -t DIRECTORY SOURCE...

如果你这样做cp a b,那么如果 b 不存在,你会得到cp -T a b,但如果 b 存在并且是一个目录,你会得到cp -t b a,否则错误。


例子

mkdir empty
cd empty
mkdir a
touch a/a-file
cp -r a b #this creates b a copy of a
cp -r a b #this time it makes a copy of a called a in b (b/a)

实施例2

mkdir empty
cd empty
mkdir a
touch a/a-file
cp -r -T a b #this creates b, a copy of a
cp -r -T a b #updates b (no effect in this case)

实施例3

mkdir empty
cd empty
mkdir a
touch a/a-file
mkdir b
cp -r -t b a #copy a into b
cp -r -t b a #updates a/b (no effect in this case)

答案3

另外,请确保第一个参数(要复制的目录)不以正斜杠字符结尾/。在这种情况下,某些版本cp(例如在 MacOS 上)将其视为/*并仅复制目录的内容,而不是整个目录。当您使用键自动完成目录名称时,通常会添加正斜杠Tab

复制整个目录 dir1进入目录dir2

cp -r dir1 dir2

复制目录内容 dir1进入目录dir2

cp -r dir1/ dir2

它相当于:

cp -r dir1/* dir2

相关内容