LINUX教学:cp命令两个高效的用法》要点:

本文介绍了LINUX教学:cp命令两个高效的用法linux c pthreadlinux qq,希望对您有用。假如有疑惑linux c pthreadlinux命令,可以联系我们。

cp 命令两个高效的用法

Linux中高效的备份拷贝诏书

在Linux上能使用滑鼠点来点去的图形化界面是一件很美妙的事……但是假如你喜欢的开发交互环境和编译器是终端窗口、Bash和Vim,那你应当像我一样经常和终端打交道.

虽然是不常常使用终端的人,假如对终端环境深入了解也能受益良多.举个事例——cp命令,据维基百科的解释,cp(意即copy)命令是第一个版本的Unix系统的一部门.连同一组其它的命令ls、mv、cd、pwd、mkdir、vi、sh、sed和awk ,还有提及的cp都是我在1984年接触SystemVUnix系统时所学习的命令之一.cp命令最常见的用法是制做文件副本.像这样:

cpsourcefiledestfile

在终端中执行此命令,上述命令将名为sourcefile的文件复制到名为destfile的文件中.若果在执行命令之前destfile文件不存在,那将会成立此文件,倘若早已存在,那都会覆盖此文件.

这个命令我不晓得自己用了多少次了(我也不想晓得),而且我晓得在我编撰测试代码的时侯,我常常用,为了保存当前正常的版本,但是又能继续更改,我会输入这个命令:

cptest1.pytest1.bak

Linux cp 命令参数详解_Linux cp 命令高效用法_linux c pthread

在过去的30多年里,我使用了无数次这个命令.另外,当我决定编撰我的第二个版本的测试西式时,我会输入这个命令:

cptest1.pytest2.py

这样就完成了更改西式的第一步.

我一般甚少查看 cp命令的参考文档,虽非当我在备份我的图片文件夹的时侯(在GUI环境下使用“file”应用),我开始思索“在 cp 命令中是否有个参数支持只复制新文件或则是更改过的文件.”果然,真的有!

高效用法1:更新你的文件夹

好比说在我的笔记本上有一个储存各类文件的文件夹,另外我要不时的往上面添加一些新文件,但是我会不时地更改一些文件,比如我手机里下载的相片或则是音乐.

假定我搜集的那些文件对我而言都很有价值,我有时侯会想做个拷贝,如同是“快照”一样将文件保留在其它媒体.其实目前有好多程序都支持备份,并且我想更为精确的将目录结构复制到可联通设备中,方以便我常常使用这种离线设备或则联接到其它笔记本上.

cp 命令提供了一个易如反掌的办法.事例如下:

在我的 Pictures 文件夹下,我有这样一个文件夹名子为 Misc.为了便利说明,我把文件拷贝到USB储存设备上.让我们开始吧!

me@desktop:~/Pictures$cp-rMisc/media/clh/4388-D5FEme@desktop:~/Pictures$

Linux cp 命令高效用法_Linux cp 命令参数详解_linux c pthread

里面的命令是我从根据终端窗口中完整复制出来的.对于有些人来说不是很适应这些环境,在我们输入命令或则执行命令之前,须要注意的是 me@mydesktop:~/Pictures 这个前缀,me这个是当前用户,mydesktop这是笔记本名称,~/Pictures这个是当前工作目录,是/home/me/Pictures完整路径的简写.

我输入这个命令cp-rMisc/media/clh/4388-D5FE并执行后,拷贝 Misc 目录下所有文件(这个 -r参数,全称“recursive”,递归处置,意思为本目录下所有文件及子目录一起处置)到我的USB设备的挂载目录 /media/clh/4388-D5FE.

执行命令后回到之前的提示,大多数命令承继了Unix的特点,在命令执行后,假如没有任何异常哪些都不显示,在任务结束之前不会显示像“executionsucceeded”这样的提示消息.假如想获取更多的反馈,就使用-v参数让执行成果更详尽.

右图中是我的USB设备中方才拷贝过来的文件夹 Misc ,上面总共有9张图片.

Image of the new copy of Misc on the USB drive

ImageofthenewcopyofMiscontheUSBdrive

假定我要在原始拷贝路径下 ~/Pictures/Misc下添加一些新文件,如同如许:

New files added to the master directory

Newfilesaddedtothemasterdirectory

现在我想只拷贝新的文件到我的储存设备上,我就使用 cp的“更新”和“详细”选项.

Linux cp 命令参数详解_Linux cp 命令高效用法_linux c pthread

me@desktop:~/Pictures$cp-r-u-vMisc/media/clh/4388-D5FE’Misc/asunder.png’->’/media/clh/4388-D5FE/Misc/asunder.png”Misc/editingtagsguayadeque.png’->’/media/clh/4388-D5FE/Misc/editingtagsguayadeque.png”Misc/misconusb.png’->’/media/clh/4388-D5FE/Misc/misconusb.png’me@desktop:~/Pictures$

里面的第一行中是 cp 诏书和具体的参数(-r 是“递归”, -u 是“更新”,-v是“详细”).接出来的三行显示被复制文件的信息,最后一行显示诏书行提示符.

一般来说,参数 -r 也可用更详尽的风格--recursive.虽非以简略的形式,也可以如此连用-ruv.

高效用法2:版本备份

回到一开始的事例中,我在开发的时侯按期给我的代码版本进行备份.之后我找到了另一种更好用的 cp 参数.

假定我正在编撰一个十分有用的Python程序,作为一个喜欢不断更改代码的开发者,我会在一开始编撰一个程序简单版本,之后不停的往上面添加各类功能直至它能成功的运行上去.比喻说我的第一个版本就是用Python程序复印出“helloworld”.这只有一行代码的程序如同这样:

print’helloworld’

之后我将这个代码保留成文件命名为 test1.py.我可以如此运行它:

me@desktop:~/Test$pythontest1.pyhelloworldme@desktop:~/Test$

如今西式可以运行了,我想在添加新的内容之前进行备份.我决定使用带编号的备份选项,如下:

Linux cp 命令参数详解_linux c pthread_Linux cp 命令高效用法

clh@vancouver:~/Test$cp--force--backup=numberedtest1.pytest1.pyclh@vancouver:~/Test$lstest1.py test1.py.~1~clh@vancouver:~/Test$

以是,里面的做法是哪些意思呢?

第一,这个 --backup=numbered 参数意思为“我要做个备份,并且是带编号的连续备份”.所以一个备份便是1号,第二个便是2号,等等.

第二,假如源文件和目标文件名子是一样的.一般我们使用 cp 命令去拷贝成本身,会得到这样的报错信息:

cp:’test1.py’and’test1.py’arethesamefile

在特殊环境下,假如我们想备份的源文件和目标文件名子相同,我们使用 --force参数.

第三,我使用 ls (意即“list”)诏令来显示现今目录下的文件,名子为 test1.py的是原始文件,名子为 test1.py.~1~的是备份文件

如果如今我要加上第二个功能,在西式里加上另一行代码,可以复印“Kilroywashere.”.如今西式文件 test1.py的内容如下:

print’helloworld’print’Kilroywashere’

见到Python编程多么简单了吗?不管怎么,假如我再度执行备份的步调,结果如下:

Linux cp 命令参数详解_Linux cp 命令高效用法_linux c pthread

如今我有有两个备份文件: test1.py.~1~包括了一行代码的程序,和 test1.py.~2~包括两行代码的程序.

这个挺好用的功效,我考虑做个shell函数让它显得更简单.

最后总结

第一,Linux指南页,它在大多数桌面和服务器发行版都默认安装了,它提供了更为详尽的使用办法和事例,对于 cp命令,在终端中输入如下命令:

mancp

对于这些想学习怎么使用这种命令,但不清楚怎样使用的用户应当首先看一下这种阐释,之后我建议创建一个测试目录和文件来尝试使用命令和选项.

第二,兴趣是最好的老师.在你最喜欢的搜索引擎中搜索“linuxshelltutorial”,你会得到好多有趣和有用的资源.

第三,你是不是在想,“为什么我要用如此麻烦的办法,图形化界面中有相同的功能,只用点击几下岂不是更简单?”,关于这个问题我有两个理由.首先,在我们工作中须要中断其他工作流程以及大量使用点击动作时,点击动作可就不简单了.其次,假如我们要完成流水线般的重复性工作,通过使用shell脚本和shell函数以及shell重命名等功能能够很轻松的实现.

你还晓得关于 cp 诏书其他更棒的使用方法吗?请在留言中积极回复哦~

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复