问题描述

我正在尝试使用终端将文件夹的内容复制到另一个目录中的另一个文件夹。

有人能够给我提供一个命令行语法的例子吗?

最佳解决方案

您可以使用命令将文件夹/source的内容复制到另一个现有文件夹/dest

cp -a /source/. /dest/

-a选项是一种改进的递归选项,可保留所有文件属性并保留符号链接。

源路径末尾的.是特定的cp语法,允许复制所有文件和文件夹,包括隐藏的文件和文件夹。

次佳解决方案

另一种是rsync

rsync -r source/ destination

rsync的优点是:

初始同步后,它将只复制已更改的文件。

您可以通过网络使用它,方便使用$ HOME中的文件,尤其是配置文件。

第三种解决方案

假设你在~中有一个名为folder1的文件夹,里面的folder1是1个叫做file1的文件,还有2个文件夹叫做sub1和sub2,每个文件夹里面都有其他文件和文件夹。

要将~/folder1的所有内容复制到~/new_folder1,您可以使用

cp -r ~/folder1/. ~/new_folder1

new_folder1将包含来自folder1的所有文件和文件夹。

cp是使用终端复制的命令,-r以递归方式进行复制(因此,当前目录+当前内部的其他目录)~/folder1是源文件夹,~/new_folder1是源内文件/文件夹的目标文件夹。

第四种方案

cp Command

cp是用于复制文件和目录的Linux命令。语法如下:

cp source destination

cp dir1 dir2

cp -option source destination

cp -option1 -option2 source destination

在本例中,将/home/vivek/letters文件夹及其所有文件复制到/usb/backup目录中:

cp -avr /home/vivek/letters /usb/backup

哪里,

-a:保留指定的属性,如目录,文件模式,所有权,时间戳,如果可能的话,附加属性:上下文,链接,xattr,全部。

-v:解释正在做什么。

-r:递归复制目录。例

将名为/tmp /conf的文件夹复制到/tmp /backup:

$ cp -avr /tmp/conf/ /tmp/backup

第五种方案

如果有两个文件夹:(具有写入权限)

drwxr-xr-x 4 vimal vimal 4096 Sep 9 12:17 .

drwxr-xr-x 3 root root 4096 Aug 18 14:35 ..

drwxrwxrwx 6 vimal vimal 4096 Sep 9 12:15 DATA

drwxrwxrwx 7 vimal vimal 4096 Sep 9 12:15 PORTAL

如果你在名为PORTAL的文件夹内想要复制另一个文件夹的所有内容,说DATA在同一级别,那么你会这样做

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

你必须注意2点。最后一个点在当前文件夹中复制到这里

跟随/DATA /。 DATA文件夹中的所有CONTENTS都将被复制,而不是DATA文件夹本身。

如果您从/DATA /DATA中删除了尾随的”.”,

那么整个数据文件夹将被复制到门户内(从你应对的地方)。