原文: The Linux cp Command – How to Copy Files in Linux
当你在电脑上工作时,有几种不同的方式来复制和粘贴内容。
如果你花更多时间在设备的用户界面上,你可能会用鼠标来做这个。你可以通过右键单击文件并选择“复制”,然后进入不同的目录并选择“粘贴”来复制文件。
对于使用终端的朋友来说,你也可以在不离开终端的情况下进行文件复制-粘贴操作。在基于 Linux 的终端中,你可以使用 cp
命令来完成这一操作。
在这篇文章中,我将解释什么是 cp
命令,并告诉你如何在 Linux 中使用终端复制和粘贴文件和目录。
什么是 cp
命令
你使用 cp
命令将文件从一个地方复制到另一个地方。这个命令也可以复制目录(文件夹)。
这个命令的语法是:
cp [...file/directory-sources] [destination]
[file/directory-sources]
指定你要复制的文件或目录的来源。而 [destination]
参数则指定了你想复制文件的位置。
为了理解本文的其余部分,我将使用这个文件夹结构的例子。假设一个名为 DirectoryA 的目录,里面有两个目录,DirectoryA_1 和 DirectoryA_2。这些子目录里有许多文件和子目录。
我还将假设你目前在终端中的 DirectoryA 位置:
cd DirectoryA
如何用 cp 命令复制文件
如果你想复制一个文件,比如 README.txt,从 DirectoryA_1 复制到 DirectoryA_2,你将这样使用 cp
命令:
cp ./DirectoryA_1/README.txt ./DirectoryA_2
# ./DirectoryA_1/README.txt is the source file
# ./DirectoryA_2 is the destination
如果你想从 DirectoryA_1 复制一个以上的文件到 DirectoryA_2,你会这样使用 cp
命令:
cp ./DirectoryA_1/README.txt ./DirectoryA_1/ANOTHER_FILE.txt ./DirectoryA_2
正如你所看到的,你将把所有的源文件放在前面,而最后一个参数将是目的文件。
如何用 cp 命令复制目录
默认情况下,cp
命令对文件起作用。因此,如果你试图像这样复制一个目录:
cp ./DirectoryA_1/Folder/ ./DirectoryA_2
你将得到一个错误:
./DirectoryA_1/Folder/ is a directory
要复制目录,你必须传入 -r
标志。这个标志通知 cp
命令递归地复制一个目录及其内容(可以是文件或其他子目录)。因此,对于前面的命令,你可以在目录源之前加上这个标志,像这样:
cp -r ./DirectoryA_1/Folder/ ./DirectoryA_2
这个命令将递归复制 ./DirectoryA_1/ 中的 Folder 目录,以及 Folder 目录中的所有文件和目录。
如何复制符合 glob 模式的文件
glob 模式类似于 Regex,它允许你匹配多个名称与特定模式相匹配的文件。在这里可以了解到更多的区别:Regex vs Glob 模式。
例如,如果你想复制 DirectoryA_1 中所有扩展名为 .txt 的文件,你可以执行这个命令:
cp ./DirectoryA_1/*.txt ./DirectoryA_2
./DirectoryA_1/*.txt
匹配名字中带有 .txt
扩展名的文件,cp
命令可以将所有这些文件复制到目的地。
你可以查看 glob 文档,了解更多关于可以使用的 glob 模式和字符。
现在你知道如何从命令行中直接复制文件(和目录)了。谢谢你阅读本文!