在 Linux 中复制目录 |
您所在的位置:网站首页 › linux文件复制到目录的命令在哪找 › 在 Linux 中复制目录 |
要在基于 Unix 的操作系统(Linux 和 MacOS)中复制文件或目录,需要使用 cp 命令。 cp 命令是一个相对简单的命令,但是其输出会根据输入(文件或目录)和传递给它的选项而略有变化。 要查看 cp 命令的文档或手册,请在终端上运行 man cp: $ man cp NAME cp -- copy files SYNOPSIS cp [OPTIONS] source_file target_file cp [OPTIONS] source_file ... target_directory ...这个命令的基本形式包括要复制的一个或多个输入源(文件或目录),以及将文件或目录复制到什么目标位置: cp [OPTIONS] source_file target_file如何将文件复制到当前目录要复制文件,需要输入要复制的文件以及要将文件复制到什么目标路径。 如果你有一个名为 a.txt 的文件,想要给该文件生成一个副本,名为 b.txt: $ ls a.txt $ cp a.txt b.txt $ ls a.txt b.txt如果你不熟悉 ls 命令,这个命令是“列出”目录的所有内容。默认情况下,cp 命令使用你的当前目录作为路径。 如何将文件复制到另一个目录要将文件复制到与当前目录不同的目录,你只需要输入另一个目录的路径作为目标即可: $ ls ../directory-1/ $ cp a.txt ../directory-1/ $ ls ../directory-1/ a.txt执行 cp 命令之后,之前空的 directory-1 现在包含了文件 a.txt。 默认情况下,复制文件的名称和原始文件的名称相同,但是你也可以选择定义文件名: $ cp a.txt ../directory-1/b.txt $ ls ../directory-1/ b.txt如何将多个文件复制到一个目录要一次复制多个文件,可以输入多个输入源和一个目录作为目标路径: $ ls ../directory-1/ $ cp first.txt second.txt ../directory-1/ $ ls ../directory-1/ first.txt second.txt这里,两个文件(first.txt 和 second.txt)都被复制到目录 directory-1。 注意:当传递多个原文件时,最后一个参数必须是目录。如何将一个目录复制到另一个目录如果你尝试传递一个目录作为输入源,将显示错误: $ cp directory-1 directory-2 cp: directory-1 is a directory (not copied).要复制一个目录,需要添加 -r(或 -R)标记——即 --recursive 的简写: $ ls directory-1 a.txt $ cp -r directory-1 directory-2 $ ls directory-1 directory-2 $ ls directory-2 a.txt这里,包含文件 a.txt 的 directory-1 被复制到一个新的目录,directory-2——现在也包含文件 a.txt。 如何复制整个目录或目录的内容复制目录时有一个有趣的情况:如果目标目录已经存在,则可以通过在输入的末尾添加或删除 / 来选择复制目录的内容还是整个目录。 这是 man 页面的 -R 选项的描述: 如果 source_file 指定一个目录,则 cp 命令复制该目录以及此时连接的整个子树。 如果 source_file 以 / 结尾,则复制目录的内容,而不是目录本身。如果仅将目录的内容复制到另一个目录,则在输入末尾添加 /。 如果要将目录的内容和目录文件夹本身复制到另一个目录,则不需要在输入的末尾添加 /: $ ls directory-1 directory-2 $ ls directory-2 $ cp -r directory-1 directory-2 $ ls directory-2 directory-1 $ ls directory-2/directory-1 a.txt在这里,你可以看到,因为 directory-2 已经存在——输入末尾没有 /——directory-1 的内容和目录本身都被复制到目标文件夹中。 如何避免 cp 命令重写文件默认情况下,cp 命令将重写已有的文件: $ cat a.txt A $ cat directory-1/a.txt B $ cp a.txt directory-1/a.txt $ cat directory-1/a.txt A如果你熟悉 cat 或者 “concatenate” 命令,它打印一个文件的内容。有两种方式避免这种情况。 interactive 标记可以添加 -i 或 --interactive 标记,在即将重写时给予提示: $ cp -i a.txt directory-1/a.txt overwrite directory-1/a.txt? (y/n [n])no-clobber 标记或者使用 -n 或 --no-clobber 标记,在没有提示的情况下避免重写: $ cat a.txt A $ cat directory-1/a.txt B $ cp -n a.txt directory-1/a.txt $ cat directory-1/a.txt B这里,你可以看到,因为有 -n 标记,directory-1/a.txt 的内容未被重写: 其他选项cp 命令还可以搭配很多其他有用的选项一起使用:-v 用于显示“详细”的输出,-f 用于“强制”。 我强烈建议你通读 man 页面,以了解所有其他有用的选项。 如果你喜欢本教程,我还将在 Twitter 上谈论类似的主题,并在我的网站上写关于这些主题的文章,欢迎访问。 原文:Copy a Directory in Linux – How to cp a Folder in the Command Line in Linux and Unix (MacOS),作者:John Mosesman |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |