如何将包含文件的文件夹复制到Unix/Linux中的另一个文件夹?

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

2804542 次浏览

您正在寻找的选项是-R

cp -R path_to_source path_to_destination/
  • 如果destination不存在,它将被创建。
  • -R表示copy directories recursively。您也可以使用-r,因为它不区分大小写。
  • 要复制里面的一切源文件夹(符号链接、隐藏文件)而不复制源文件夹本身,请使用-a标志以及源中的尾随/.(根据@muni764/@Anton Krug评论):
cp -a path_to_source/. path_to_destination/

用途:

$ cp -R SRCFOLDER DESTFOLDER/

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

如果您要复制的目录名为dir1,并且您想将其复制到/home/Pictures文件夹:

cp -r dir1/ ~/Pictures/

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

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

man [insert command here]

在终端提示符下。

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

答案中Linux和Unix之间有一个重要的区别,因为对于Linux(GNU和BusyBox)-R-r--recursive都是等价的,如这个答案中所述。对于可移植性,即POSIX合规性,您会希望使用-R,因为与-r有一些依赖于实现的差异。阅读手册页以了解可能出现的任何特性非常重要(这是一个很好的用例,可以说明为什么POSIX标准很有用)。