当你在电脑上工作时,有几种不同的方式来复制和粘贴内容。
如果你花更多时间在设备的用户界面上,你可能会用鼠标来做这个。你可以通过右键单击文件并选择 "复制",然后进入不同的目录并选择 "粘贴 "来复制文件。
对于我的终端朋友来说,你也可以在不离开终端的情况下进行文件复制-粘贴操作。在基于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/是一个目录
要复制目录,你必须传递-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文档,了解更多关于globing模式和可以使用的字符。
现在你知道如何从命令行中直接复制文件(和目录)了。谢谢你的阅读!