【发布时间】:2013-02-02 01:44:34
【问题描述】:
我在将包含该文件夹中文件的文件夹复制到另一个文件夹时遇到了一些问题。命令cp -r 不会复制文件夹中的文件。
【问题讨论】:
-
我希望这可以迁移到一个更关注主题的 SE。
-
Bash 编程是on-topic。
我在将包含该文件夹中文件的文件夹复制到另一个文件夹时遇到了一些问题。命令cp -r 不会复制文件夹中的文件。
【问题讨论】:
您正在寻找的选项是-R。
cp -R path_to_source path_to_destination/
destination 不存在,则会创建它。-R 表示 copy directories recursively。您也可以使用-r,因为它不区分大小写。-a 标志和尾随/. (根据@muni764's / @Anton Krug's comment):cp -a path_to_source/. path_to_destination/
【讨论】:
cp -r src/. dest 来源中“斜线点”的重要性我知道有人提到它,但我似乎每次都想念它。
您正在寻找cp 命令。您需要更改目录,以便您在尝试复制的目录之外。
如果您要复制的目录名为 dir1,并且您希望将其复制到您的 /home/Pictures 文件夹:
cp -r dir1/ ~/Pictures/
Linux 区分大小写,并且还需要在每个目录后加上/ 才能知道它不是文件。 ~ 是终端中的一个特殊字符,它会自动评估为当前用户的主目录。如果您需要知道您所在的目录,请使用命令pwd。
当您不知道如何使用 Linux 命令时,可以通过键入来参考手册页:
man [insert command here]
在终端提示符下。
此外,要在终端中键入时自动完成长文件路径,您可以在开始键入路径后点击 Tab,您将看到选择,或者它将插入路径的剩余部分。
在答案中 Linux 和 Unix 之间有一个重要区别,因为对于 Linux(GNU 和 BusyBox)-R、-r 和 --recursive 都是等价的,如 this answer 中所述。对于可移植性,即 POSIX 合规性,您可能希望使用 -R,因为与 -r 存在一些依赖于实现的差异。阅读手册页以了解可能出现的任何特性非常重要(这是一个很好的用例,可以说明 POSIX 标准为何有用)。
【讨论】:
-r 选项将递归地复制目录。
cp -r 命令,但它没有正常工作?
-r、--recursive 和 -R 似乎是等价的。它还会给出常见的陷阱等,这很好。
cp -r dir1 ~/Pictures/
用途:
$ cp -R SRCFOLDER DESTFOLDER/
【讨论】:
demo1_copy 不存在 $ ls demo1 demo3 README.md $ cp -R demo1/ demo1_copy/