作者:linux

出处:http://linux.cn/thread/11868/1/1/

gcp – 源于CP的高级命令行文件拷贝工具

几周前,我们讨论了高级拷贝(修改于cp命令,让其可以显示复制进度条)。一位读者在注释中指出其他实用工具不仅也提供了基本的cp命令功能,而且还提供cp不具有的高级功能。所以,这篇文章里,我们将会讨论非常相似的命令行工具-gcp。

gcp – 高级命令行文件拷贝器

根据操作手册介绍,gcp是一款高级命令行文件拷贝工具软件,其灵感来自于标准的 cp命令
但它提供了像进度条显示、源文件列表、拷贝过程中出现错误文件不中断继续拷贝等cp所不具有的各项高级功能。

下面是部分功能列表:

测试环境

  • 操作系统 – Ubuntu 13.04
  • Shell工具 – Bash 4.2.45
  • 应用程序 – gcp 0.1.3

简短的教程

下面是一些gcp命令的例子:

1. 复制进度显示

gcp命令提供了进度显示功能,以便用户能监控到复制操作的当前状态。

下面是例子:

可以看到,gcp命令显示了如文件大小、复制完成的百分比、传输速率和复制操作还需多久完成等细节。

2. 使用-r选项递归拷贝目录

要递归拷贝完整的目录,可以使用-r选项。

示例如下:

可以看到,gcp命令显示了完整文件夹复制情况的进度条。

3. 精心设计的错误描述显示

如遇到错误,gcp命令会显示拷贝失败的文件的错误信息。

示例如下:

可以看到,gcp命令列出了详细的错误消息,即August Rush.avi文件已经在目标目录中存在,拷贝失败。但这个错误并不会影响其它文件的正常拷贝操作。

4. 使用-v选项输出详细信息

详细选项-v参数可以用来跟踪gcp命令执行时的所有详细消息。

示例如下 :

可以看到,使用-v选项可以输出很多细节信息。

5. 创建和使用源列表

gcp命令的一个很炫的功能就是可以创建源文件列表,以供以后再次使用。

例如,在下面的拷贝操作中,我使用-sources-save选项来保存一个源文件列表。

本例中,列表名叫SOURCES_SAVE。你可以用–sources-list选项参数来确认已保存的列表。

可以看到列表名SOURCES_SAVE已保存。

现在,删除我们在第一步中拷贝的文件:

重复第一步的操作,但不要加上源文件路径名,使用–sources-load选项参数来从SOURCES_SAVE列表文件中加载源文件名。

可以看到,gcp命令从SOURCES_SAVE列表文件中读取源文件名,并且正常的执行了拷贝操作。

下面是关于源文件列表的其它选项参数:

gcp命令还提供了各式名样的其它有用选项。要查看完整的选项,请阅读gcp帮助主页

下载/安装/配置

下面是关于gcp命令的一些主要链接站点:

你可以通过使用像yum、apt-get等的命令行包管理工具来下载和安装gcp命令。Ubuntu用户也可以使用Ubuntu软件中心来下载和安装这个工具。

优点

  • 状态条显示和源文件列表是这个工具的核心。
  • 跳过有问题的文件,不影响正常文件的复制操作。
  • 跟标准的cp命令的用法很相似。

不足

  • 在复制文件夹的时候,要是能显示每个文件的复制状态,那就更好了。
  • 在大多数Linux发行版本中没有预先安装。

结论

如果您厌倦了使用标准cp命令拷贝大文件时的盲目等待,gcp命令是个不错的选择。系统管理员会喜欢上源文件列表的功能的。它是必备工具。

你曾经使用过gcp或者类cp的高级命令行工具吗?可以把你的使用心得跟我们分享。


via: http://mylinuxbook.com/gcp-advanced-command-line-file-copier-inspired-by-cp/

译者:runningwater 校对:jasminepeng

本文由 LCTT 原创翻译,Linux中国 荣誉推出

本文地址:http://linux.cn/thread/11868/1/1/

[ 欢迎转载,敬请在正文中标注并保留原文/译文链接和作者/译者等信息。 ]
本文系“作者/译者/校对”原创,转载敬请注明。本文转载遵循CC协议规定
 该贴已经同步到 linux的微博

gcp – 源于CP的高级命令行文件拷贝工具的更多相关文章

  1. 关于Linux操作系统的命令行文件拷贝

    关于Linux操作系统的命令行文件拷贝 起因:服务器的加密狗秘钥过期导致无法使用服务,需要将服务器里面的秘钥文件发送给授权人员.本以为十分容易,打开服务器,图形界面点击发送即可.没想到服务器的界面是命 ...

  2. HDFS命令行文件操作

    Hadoop文件操作命令形式为 hadoop fs -cmd <args> 说明:cmd是具体的文件操作命令,<args>是一组数目可变的参数. Hadoop最常用的文件操作命 ...

  3. linux下命令行文件路径隐藏

    https://askubuntu.com/questions/16728/hide-current-working-directory-in-terminal 在~.,bashrc里添加 expor ...

  4. Linux基本配置和管理 3 ---- Linux命令行文本处理工具

    1 文件浏览(简单回顾) 1 cat 查看文件的内容 2 more 以翻页的形式查看,但是只能向下翻页 3 less 以翻页的形式查看,但是能够支持向上和向下翻页 4 head 默认是查看前10行,但 ...

  5. Linux入门基础 #10:命令行文本处理工具

    本文出自   http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...

  6. Linux命令行文本处理工具

    关键字搜索: grep  关键字  指定文件 -i   搜索时忽略大小写 -n  显示结果所在行 -v  显示不包含关键字的行 基于列的文本处理: cut -d: -f1 /etc/passwd -d ...

  7. sed高级命令

    所谓高级,主要是指这里将要提到的命令都能改变sed执行或者控制的流程顺序(sed通常都是一行被读入模式空间,并用脚本中的sed命令一个接一个的应用于那一行). 高级sed命令分成3个组: 1)处理多行 ...

  8. Linux命令行文本工具

    浏览文件 cat 查看文件内容 more 以翻页形式查看文件内容(只能向下翻页) less 以翻页形式查看文件内容(可以上下翻页) head 查看文件的头几行(默认10行) tail 查看文件的尾几行 ...

  9. 逼格高又实用的Linux高级命令,开发运维都要懂!

    在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭. 像一些高级点的命令,比如说 Xargs 命令.管道 ...

随机推荐

  1. python面向对象的三大特性之一多态

    多态 多态的特性是调用不同的子类将会产生不同的行为,而无需明确知道这个子类实际上是什么 说白了就是,不同的对象调用相同的方法,产生不同的行为 例如:s1是字符串类型,w1是列表,两个完全不同的对象,他 ...

  2. Vue学习之路第十四篇:v-for指令中key的使用注意事项

    1.学前准备: JavaScript中有一个方法:unshift() ,其作用是向数组的开头添加一个或更多元素,并返回新的长度.该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新 ...

  3. JavaScript 数字字符串比较大小

    JavaScript中常用数字字符串比较 1.数字与数字之间直接比较 比较方式依据数学运算,没什么好说的. 2.数字与字符串数字之间直接比较 例如 数字5 与字符串数字'123',这种比较先将数字字符 ...

  4. HDU2147 - kiki's game 【巴什博弈】

    Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes th ...

  5. idea 解决git冲突

    1.提交本地代码到本地仓库 2.啦取远程代码 不进行merge 3.冲突文件会显示   >>> head  ===== 4.删除  >>> head  ===== ...

  6. Mybaitis-generator生成数据对象和时间的优化

    1.本章涉及到知识点,Mybaitis-generator生成数据对象和时间,xml的引用*.properties 外部文件(在这之前必须导入了mybaitis的核心架包) A.在pom.xml的案例 ...

  7. tf.truncated_normal和tf.random_normal使用方法的区别

    1.tf.truncated_normal使用方法 tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=No ...

  8. struct 模块简介

    用处 按照指定格式将Python数据转换为字符串,该字符串为字节流,如网络传输时,不能传输int,此时先将int转化为字节流,然后再发送; 按照指定格式将字节流转换为Python指定的数据类型; 处理 ...

  9. 【codeforces 805D】Minimum number of steps

    [题目链接]:http://codeforces.com/contest/805/problem/D [题意] 给你一个字符串; 里面只包括a和b; 让你把里面的"ab"子串全都去 ...

  10. Gradle学习总结——抓重点学Gradle

    前言 网上关于Gradle的教程很多,但很多都是以"面"切入- 通过大量讲解其用法及其API分类来阐述.但Gradle API使用技巧众多,API更是成千上百,臣妾记不住呀.个人深 ...