关于在Linux命令行上工作的一个非常好的事情是您可以获得很快的工作。通过对最有用的命令和一些命令行的掌握,您可以从您的日常工作中占用很多乏味。这篇文章将走过几个方便的技巧,可以让你的工作负荷感觉有点轻,也许有点愉快。
清空文件>
任何时候您都有一个重要的文件,您需要空,因为它变得太大或不再需要数据,可以使用命令来执行此操作>文件名。这比删除文件要快得多,并使用原始权限重新创建它。这>标志后跟文件名与键入一样cat / dev / null>文件名,但非常快。它会清空文件,但留下权限和所有权完好无损。
$ ls -l bigfile -rw-r - r--。1 SHS SHS 8956108 3月23日10:00 Bigfile $> Bigfile $ LS -L Bigfile -RW-R - R--。1 SHS SHS 0 3月23日10:50 Bigfile
对文件没有任何更改,但大小和上次更新时间。
使用它是非常常见的>操作要清空已变得过大的日志文件,特别是如果它是系统未旋转的日志文件。
将编辑保存到root拥有的文件
如果您有时需要编辑系统文件,但忘记启动文本编辑器(VI.或者vim.) 和苏达只发现你不能保存你的更改,你不必从头开始重新开始!相反,你可以按下:当准备保存文件时,键,但然后键入:
W!SUDO TEE%
系统会提示您输入您的密码(如任何内容苏达命令)并要求确认您打算覆盖文件,但您不必重做您所做的所有更改。保存文件后,按Enter键,退出:q!(已经制作的变化),你已经完成了。
一个命令要将文件复制到多个位置
像下面所示的命令使您可以在不重新输入的情况下运行命令已多次运行命令。在这种情况下,回声命令将文件系统位置列表发送到XARGS.然后运行CP为每个人命令。这-v.参数哄骗CP展示它在做什么。使用目标目录替换位置列表(即,LOC1 ...)。
$ echo loc1 loc2 loc3 |XARGS-N-1 CP -V myfile
在此示例中运行的命令是:
cp -v myfile loc1 cp -v myfile loc2 cp -v myfile loc3
“LOC”参数应替换为文件系统路径(例如,/ usr / local)。如果目标目录不是您可以在不使用的情况下写入的苏达,请使用这样的命令:
$ echo loc1 loc2 loc3 |苏达XARGS-N-1 CP -V myfile
以下是使用root访问权限将文件复制到多个主目录中的示例:
$ echo / home / nemo / home / lola / home / shark |sudo xargs-n 1 cp -pv任务'任务' - >'/ home / nemo /任务''任务' - >'/ home / lola /任务''任务' - >'/ home / shark / tasks'
此命令用途苏达要将文件复制到目标目录中,但列出目录并将其传递给以下内容XARGS.命令。
请注意,它也非常容易将这样的命令转换为别名,因为只有最终参数 - 文件名 - 需要在使用时更改。这是这样一个别名的示例:
$别名cp2dirs =“echo / home / nemo / home / lola / home / shark | sudo xargs-n 1 cp -pv”
要使用此别名,您只需要提供要复制的文件并在要求时提供密码苏达别名的一部分。
$ cp2dirs newfile [sudo]密码为您:
使用类似的策略,您可以创建一个别名,将文件复制到系统上的每个主目录中。但是,除非您跟进,否则这些文件将保留其权限,所有者和组分配ch或者chmod.操作。这是一个示例别名:
别名cp2all ='find / home -maxdepth 1 -type d |tail-n +2 |Grep -V丢失+发现|sudo xargs-n 1 cp -pv'
这CP2ALL.别名通过创建一个家庭目录列表(避免/家本身和丢失+发现在案例中的目录/家是一个单独的文件系统),然后将指定的文件复制到其中每个文件。它最终最终通过相同的名称覆盖现有文件,因此您应该小心。
更多地覆盖使用的XARGS.命令,查看此前的帖子XARGS.。