如何在 Linux 命令行中复制目录 [初学者提示]
如果您是 Linux 命令行新手,您可能会想到这个问题:如何在 Linux 命令行中将目录及其内部的文件复制到另一个目录?
以下是在 Linux 中复制目录的方法:
cp -r source_directory destination_directory
您可能已经知道可以使用 cp 命令在 Linux 中复制文件。您知道可以在 Linux 命令行中使用相同的 cp 命令复制文件夹吗?
哈哈!您已经尝试过了,也许遇到了这个错误:
cp: -r not specified; omitting directory 'test_dir'
让我向你展示一些有关在 Linux 中复制目录的知识。
在 Linux 命令行中复制目录
您当然可以使用相同的 cp 命令,但使用递归选项 -r 将文件夹及其内容复制到另一个文件夹。上述错误也暗示您错过了 -r 选项。
您所要做的就是按照这种方式使用该命令:
cp -r source_directory destination_directory
现在,如果您在目标目录上使用 ls 命令,它应该包含整个源目录。
-r 选项允许递归选项。这意味着目录的所有内容(包括其自己的子目录)都将被复制到目标。
Linux 中复制目录需要注意的几点
以下是有关复制文件夹的一些注意事项和提示。
目标目录不存在?将创建该目录
如果目标目录不存在(但路径存在),则会创建最高一级的目录(下一节将解释)。但是,它现在将复制源目录的内容,而不是源目录本身。
例如,如果你这样做:
cp -r source_directory non_existing_directory
non_existing_directory 将使用 source_directory 的内容创建,但其中不包含 source_directory。只会复制 source_directory 的文件。这就像 non_existing_directory 将是 source_directory 的副本一样。
abhishek@linux:~$ ls
test_dir
abhishek@linux:~$ cp -r test_dir new_dir
abhishek@linux:~$ tree
.
├── new_dir
│ ├── c.xyz
│ ├── myzip1.zip
│ └── myzip2.zip
└── test_dir
├── c.xyz
├── myzip1.zip
└── myzip2.zip
2 directories, 6 files
复制时无法创建嵌套目录
您不能使用上述命令创建嵌套目录结构。
例如,如果您尝试使用 cp -r source_dir dir1/dir2/dir3 但 dir2 和 dir3 不存在,它将不会创建嵌套目录结构并且命令失败。
保留原始文件属性
最后一条简短的建议。如果你同时使用 -a 选项和 -r 选项,它将保留原始文件信息,如文件权限、文件时间戳等。它将目录存档到新位置,而不是重新创建它。
就是这样
这些信息应该足以让您了解如何在 Linux 中复制目录。如果您有任何问题或建议,请随时发表评论。