我是 Linux 命令行的新手,目前正在尝试掌握复制命令。
有人能告诉我是否可以将目录及其子目录和相关文件复制到具有新名称的新目录中,例如directory_backup
?
提前感谢所有帮助。
答案1
您可以使用cp
(-r
递归复制)标志并指定新目录名称:
cp -r /path/to/directory /path/to/location/new-name
在上面的命令中,用真实路径替换给定的路径。
例如,stuff
要从我的主目录复制到现存的目录名为backup
,并命名新目录stuff-backup
(如果此目录已经存在,请注意stuff
将复制进入而不是覆盖它),则运行:
cp -r ~/stuff ~/backup/stuff-backup
~
是你的主目录的快捷方式,/home/$USER
或者/home/zanna
在我的情况下。如果当前工作目录是你的主目录,则可以省略它 - 你可以在提示符中看到这一点
zanna@monster:~$
^--the ~ here is where I am - home!
您可以添加-v
(详细)标志来cp
报告正在执行的每个复制:
$ cp -vr stuff backup/stuff-backup
'stuff/thing1' -> 'backup/stuff-backup/thing1'
'stuff/thing2' -> 'backup/stuff-backup/thing2
...
答案2
您需要的命令只是cp
代表“复制”。
例如,您可以使用以下语法之一:
cp SOURCEFILE TARGETFILE
cp SOURCEFILE TARGETDIRECTORY
第一种变体允许您为目标文件指定一个新文件名,而第二种变体在目标目录中创建同名副本。当然,您必须先用有效路径替换大写字母的占位符。
但是,cp
默认情况下,它仅对文件进行操作,而不对目录进行操作。要使其以递归方式复制包含其所有内容的完整目录,您必须添加以下-r
选项:
cp -r SOURCEDIRECTORY TARGETDIRECTORY
您可以在终端中cp
输入来了解有关该命令的更多信息。man cp
答案3
您可以使用以下命令将目录从一个地方复制到另一个子目录。
cp -Rvp /home/edmuntu/data /home/edmuntu/mydata/
命令解释:
-R
= 递归复制目录v
= 解释正在做什么p
= 它将帮助您通过时间戳保留您的权限和所有权
答案4
cp
是执行您要查找的功能的命令。它代表复制,它就是这个功能。在这种情况下适合您的命令是
cp -R source/ destination/
这会将该source/
文件夹及其所有子目录复制到destination/
。
如果destination/
不存在,则会创建。
该-R
标志代表递归,它指示cp
复制所有子目录。