1319

我在将包含该文件夹中文件的文件夹复制到另一个文件夹时遇到了一些问题。命令cp -r不会复制文件夹中的文件。

4

3 回答 3

2175

您正在寻找的选项是-R.

cp -R path_to_source path_to_destination/
  • 如果destination不存在,它将被创建。
  • -R意味着copy directories recursively。您也可以使用-r它,因为它不区分大小写。
  • 要复制源文件夹中的所有内容(符号链接、隐藏文件)而不复制源文件夹本身,请使用-a标志以及源中的尾随/.(根据@muni764's /@Anton Krug注释):
cp -a path_to_source/. path_to_destination/
于 2013-02-17T15:20:20.803 回答
386

您正在寻找cp命令。您需要更改目录,以便您在尝试复制的目录之外。

如果您正在复制的目录被调用dir1并且您想要将其复制到您的/home/Pictures文件夹中:

cp -r dir1/ ~/Pictures/

Linux 区分大小写,并且还需要/在每个目录之后知道它不是文件。 ~是终端中的一个特殊字符,它会自动评估为当前用户的主目录。如果您需要知道您所在的目录,请使用命令pwd

当您不知道如何使用 Linux 命令时,可以通过键入以下内容来参考手册页:

man [insert command here]

在终端提示符下。

此外,要在终端中键入时自动完成长文件路径,您可以Tab在开始键入路径后点击,您将看到选择,或者它将插入路径的剩余部分。

答案中 Linux 和 Unix 之间有一个重要区别,因为对于 Linux (GNU and BusyBox) -R-r--recursive都是等效的,如本答案中所述。对于可移植性,即 POSIX 合规性,-R由于与-r. 阅读手册页以了解可能出现的任何特性很重要(这是一个很好的用例来说明为什么 POSIX 标准是有用的)。

于 2013-02-17T15:26:29.950 回答
110

采用:

$ cp -R SRCFOLDER DESTFOLDER/
于 2013-02-17T15:20:42.360 回答