最近几周里,我总是收到人们询问一些快速零散的问题。有时候一个人是在寻找一个有帮助的建议,或者一个具体的命令,或者一个命令行捷径,以完成一个特定的任务。本篇将介绍最近人们向我提出的三个问题,以及完成这些任务的简单方法。

第一个场景

我们要找到那些在过去的一个月中被改动过的文件,并将他们从当前的位置复制到另一个目录中去。

在这种情况下,能否精确的解决取决于你复制文件的时候是否保持了原来的文件树结构,还是你仅仅只是把所有文件全部复制到了一个指定的地方。如果我们只是想把所有的文件保存到一个文件夹中,或许这样做是为了将这些文件归档,那么我们可以使用find这条命令。通过使用find命令,我们能够根据文件被修改的时间查找到他们的位置,然后复制他们到指定的地方。这条命令看起来是这样:

find Documents -mtime -30 -exec cp "{}" Backup \;

上面这条命令会在Documents文件夹中查找在过去30天内被修改过的文件。这些文件之后将会被复制到另一个叫Backup的目录中去。find命令将会通过调用cp命令来执行复制这一操作。通过修改mtime这条参数,我们可以查找到最近某个时间内被修改过的文件,在上面这个例子中它被设定为在过去的30天内。

更多的时候,我们会想要在把文件复制到目标文件夹后,仍然能够保留源文件夹的目录结构。很多时候,人们都希望两个文件夹的内容同步,然后他们会运行一个脚本来使他们保持一致。这种情况下,我们可能会用到rsync这条命令了。这个工具会把新文件、修改过的文件从一个复制到另一个目录中去,同时保持源目录的展示结构:

rsync -a Documents/ Backup

上面的例子,它会先找到哪些文件在Documents中和Backup中都存在,以便不再复制这些不必要的文件。

第二个场景

有一个我们都会做的很普遍的工作,就是在一个文本文件中找到一个单词,然后用另一个单词把这个词在文本中的所有实例都替换掉。

比如,假设我有一个文档中提到一个人名叫“Becky”,但是我后来决定还是用稍微正式点的称呼“Rebecca”为好。对文件中的这个简单的改动,下面这条命令会起到作用:

perl -pi -e 's/Becky/Rebecca/' mydocument.txt

这条微型的Perl脚本会查询文档中所有“Becky”的实例,并且将之改为“Rebecca”。程序首先读取名为mydocument.txt这个要改动的文档,待修改完毕后再保存回去。

第三个场景

一个普遍关注的问题是,在一个硬盘要给别人或者被扔掉之前,需要对其中存储的敏感数据做些什么。

有些人会在电脑里保存一些银行的业务数据或者税务信息,那么这些数据最好在你的硬盘被转手到别人之前被彻底清理掉。现在有一些方法和工具可以让你使用。我最喜欢的一个是shred这条命令,它不仅能对单一文件进行处理,同样也能对整个设备进行处理。要重写一个文件里面的内容,我们可以这样运行shred:

shred mytaxes.odt

上面这个例子中,它会移除文件里存的内容,但并不会把文件本身从硬盘中删除掉。如果要清除文件的内容同时删除掉这个文件,我们可以这样运行:

shred -u mytaxes.odt

需要强调的一点是,shred并不是在所有的文件系统中都能正常运行,尤其是那些带有日志功能的比较新的文件系统。在shred的操作手册中写明了哪些文件系统运行这个程序的时候会出问题。当处理敏感数据的时候,最好的方法也许是清除掉整张硬盘。shred同样也能办到。下面这个例子中,显示了如何移除掉我们电脑中第一块硬盘内的所有数据。使用这条命令一定要非常小心:

shred /dev/sda

原文发布时间为:2013-10-02

本文来自云栖社区合作伙伴“Linux中国”

三个快速便捷的命令行小贴士相关推荐

  1. 快速编辑 Shell 命令行

    作者:robinswan 来自:LinuxSir.Org 摘要:对于 Linux / Unix 这类从内核得到整体架构,再到哪怕是最小的一个应用小软件都以文本来支撑的系统,没有娴熟的命令行技巧确实是玩 ...

  2. golang 命令行_如何使用Golang编写快速有趣的命令行应用程序

    golang 命令行 by Peter Benjamin 彼得·本杰明(Peter Benjamin) 如何使用Golang编写快速有趣的命令行应用程序 (How to write fast, fun ...

  3. 【笔记】C++ 命令行小游戏 节奏大师(别踩白块) 的制作

    一.游戏介绍 计组实验大作业要在板子上做一个小游戏,我们组要做节奏大师,先在命令行里做了一个,主界面只有4*20. 可以选歌,目前支持的有:1.两只老虎, 2.两只老虎无尽版. 开始游戏后∗*∗号会从 ...

  4. 一日一技python安装_一日一技:快速实现Python 命令行参数

    一日一技:快速实现Python 命令行参数 摄影:产品经理 厨师:kingname 我们有时候需要使用 Python 开发一些命令行工具,并在运行命令的时候指定一些参数,例如: python3 xxx ...

  5. Python命令行小游戏—贪吃蛇

    Python命令行小游戏-贪吃蛇 前言 一.贪吃蛇游戏初始界面及地图 1.游戏初始界面 2.游戏地图 二.命令符的设置.输出刷新和按键检测 1.库支持 2.c语言代码 3.Python代码(变量初始化 ...

  6. 现代CMake高级教程 - 第 0 章:命令行小技巧

    双笙子佯谬老师的[公开课]现代CMake高级教程课程笔记 为什么要学习现代 CMake? 现代 CMake 指的是 CMake 3.x. 古代 CMake 指的是 CMake 2.x. 通过互联网和学 ...

  7. Linux 命令行小技巧《叹号的用处》

    bash 的历史记录里保留了输入的命令行记录.以下是如何充分利用该记录和!符号的使用教程. history的基础 HISTSIZE 变量值设置保存在历史列表中的命令数.默认情况下,该值为 500.这些 ...

  8. setproxy_SetProxy:一个设置IE代理的命令行小工具

    setproxy IE的代理设置用起来并不方便,我自己而言就要经常更改代理服务器,相信很多人有跟我相同的需要.使用C++编写了一个小程序SetProxy调用Win32 API来设置代理服务器IP,用起 ...

  9. linux日志切割命令,Linux 服务器log日志切割三种方法【附命令行】

    今天爱分享给大家带来Linux 服务器log日志切割方法[三种附命令行],希望能够帮助到大家. 业务服务器上产生了一个 10G 的log文件,然后很悲催的是什么样的文本编辑器都打不开,然后只能切分一下 ...

最新文章

  1. python 遍历字符串
  2. 自定义组合控件:Banner、轮播图、广告栏控件
  3. 一次完整的渗透测试仅供学习研究
  4. 日本农商巨头50年布局多个领域 对话国际农民丰收节贸易会
  5. 如何构建Android MVVM 应用框架
  6. Python常用技巧了解一下?
  7. shell 定时删除制定目录下过期文件
  8. pygame render怎么显示中文_PyGame开发游戏(2D)02.基础图元
  9. 使用JsonConfig控制JSON lib序列化
  10. 【.NET类库】通过SharpSocket进行TCP/UDP通信数据传输
  11. [lammps安装教程]lammps并行版安装教程
  12. 数据结构 哈希表设计
  13. Unity复制粘贴功能
  14. Vue packages version mismatch
  15. 驾考一点通维语版_驾考宝典维语版APP下载-驾考宝典维语版正式版下载[安卓版]-华军软件园...
  16. c语言中 “=”和”==“的区别
  17. 《转载》Mybatis 拦截器介绍
  18. VPS云主机网站上的WordPress安全
  19. HMM-鲍姆-韦尔奇算法
  20. 百度AI攻略:黑白图像上色

热门文章

  1. HTML5再曝漏洞 安全性遭质疑
  2. vxworks驱动开发基础
  3. [日志]挂在树上的茶壶
  4. Linux服务笔记之一:Telnet远程登录
  5. 《Java编程思想》读书笔记(14)
  6. 再读Socket编程——《UNIX网络编程(卷一)》学习点滴
  7. 使用Xshell密钥认证远程登录linux
  8. sharepoint2007就地升级2010系列(三)升级系统
  9. win7 启用网络发现
  10. js小技巧,收藏.作者:空军上将