三个快速便捷的命令行小贴士

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

第一个场景

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

在这种情况下,能否精确的解决取决于你复制文件的时候是否保持了原来的文件树结构,还是你仅仅只是把所有文件全部复制到了一个指定的地方。如果我们只是想把所有的文件保存到一个文件夹中,或许这样做是为了将这些文件归档,那么我们可以使用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

时间: 2024-10-29 22:41:25

三个快速便捷的命令行小贴士的相关文章

你值得了解的 10 个有趣的 Linux 命令行小技巧

我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作. 当我们发现使用 Linux 的新技巧时,尤其是像我这样的命令行极客,我们总会感到非常来劲. 建议阅读: 5 有趣的 Linux 命令行技巧 - 第一部分 而且我们也会很想与数百万 Linux 用户分享新学到的实践或命令,特别是那些还在使用自己的方式操作这个令人兴奋的操作系统的新手们. 建议阅读: 10 个对新手

你值得了解10个有趣的Linux命令行小技巧

我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作. 当我们发现使用 Linux 的新技巧时,尤其是像我这样的命令行极客,我们总会感到非常来劲. 而且我们也会很想与数百万 Linux 用户分享新学到的实践或命令,特别是那些还在使用自己的方式操作这个令人兴奋的操作系统的新手们. 在这篇文章中,我们将回顾一系列有用的命令行小技巧,它们可以显著地提高你的 Linux 使

Linux 用户的 3 个命令行小技巧

Linux世界充满了乐趣,我们越深入进去,就会发现越多有趣的事物.我们会努力给你提供一些小技巧,让你和其他人有所不同,下面就是我们准备的3个小技巧. 1. 如何在不使用Cron的情况调度Linux下的任务 在Linux下,调度一个任务/命令称之为Cron.当我们需要调度一个任务时,我们会使用Cron,但你知道我们在不使用Cron的情况也可以调度一个在将来时间运行的任务吗?你可以按照如下建议操作-- 每5秒钟运行一个命令(date)然后将结果写入到一个文件(data.txt).为了实现这一点,我们

从命令行访问Linux命令小抄

从命令行访问Linux命令小抄 Linux命令行的强大在于其灵活及多样化,各个Linux命令都带有它自己专属的命令行选项和参数.混合并匹配这些命令,甚至还可以通过管道和重定向来联结不同的命令.理论上讲,你可以借助几个基本的命令来产生数以百计的使用案例.甚至对于浸淫多年的管理员而言,也难以完全使用它们.那正是命令行小抄成为我们救命稻草的一刻. 我知道联机手册页(man)仍然是我们的良师益友,但我们想通过我们能自行支配的快速参考卡让这一切更为高效和有目的性.最终极的小抄可能被自豪地挂在你的办公室里,

OAS的使用——控制台和命令行工具

OAS的使用--控制台和命令行工具 [TOC] 使用需求 使用命令行工具上传三个大小不一的文件. 使用命令行工具查看三个已上传文件的信息,其中最大的文件使用multipart方式上传. 使用命令行工具下载三个文件. 使用命令行工具删除这三个文件. 控制台的使用 使用参考官方文档中的控制台使用. 命令行工具的使用 OAS提供命令行工具oascmd.py,命令行工具可以给用户一个快捷的使用工具,不需要任何代码编写就可以使用OAS的功能,在实际使用中命令行工具更多作为一种测试工具. 工具的获取和环境配

mac os x命令行下进行ping

问题描述 mac os x命令行下进行ping 在mac中的命令行下使用Ping命令时,会一直ping下去.有没有什么办法只让它像windows 那样ping几下就自动停了(除了ctrl + c)? 解决方案 ping -c 4 xxx.xxx.xxx.xxx 解决方案二: 遇到这种问题,自己也能解决 可以用-h 或者-help看帮助,都有说明的.mac os的命令和大多数bsd unix. linux也一样. 解决方案三: Mac OS X 命令行调试工具8个不可不知的Mac OS X专用命令

深入浅出Docker(二):Docker命令行探秘

深入浅出Docker(二):Docker命令行探秘 1. Docker命令行 Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法.但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,所以让我们一起开始一次真正的命令行学习之旅.首先,Docker的命令清单可以通过运行docker ,或者 docker help 命令得到: $ sudo docker 在Docker容器技术不断演化的过程中,Do

Linux平台php命令行程序处理管道数据的方法_php技巧

本文实例讲述了Linux平台php命令行程序处理管道数据的方法.分享给大家供大家参考,具体如下: linux下有一个强大的命令|(管道提示符).它的作用是将前一个命令的结果交给后一条命令并作为后一条命令的输入.而linux下的大多数命令 也都支持这种方式.可是当笔者写完一个php的命令行小程序以后,对于怎样获得前一个命令的结果却陷入了僵局.难道php不支持这样的操作? 于是又开始问google大叔.找来找去,都是说php的命令行模式是怎么回事儿,也没有和我想知道的问题相关的资料.难道是俺的关键字

Linux命令行工具使用小贴士及技巧(三)

在这个系列的第一部分,我们详细地讨论了 cd - 命令,在第二部分,我们深入探究了 pushd 和 popd 两个命令,以及它们使用的场景. 继续对命令行的讨论,在这篇教程中,我们将会通过简单易懂的实例来讨论 CDPATH 这个环境变量.我们也会讨论关于此变量的一些进阶细节. 在这之前,先声明一下此教程中的所有实例都已经在 Ubuntu 14.04 和 4.3.11(1) 版本的 Bash 下测试过. 环境变量 CDPATH 即使你的命令行所有操作都在特定的目录下 - 例如你的主目录,然而在你切