Bash 中尖括号的更多用法
在这篇文章,我们继续来深入探讨尖括号的更多其它用法。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201902/12/115848wemcebuym6mlsuwm.png">Media</a>在<a href="https://linux.cn/article-10502-1.html">上一篇文章</a>当中,我们介绍了尖括号(<>)以及它们的一些用法。在这篇文章,我们继续来深入探讨尖括号的更多其它用法。通过使用 <,可以实现“欺骗”的效果,让其它命令认为某个命令的输出是一个文件。例如,在进行备份文件的时候不确定备份是否完整,就需要去确认某个目录是否已经包含从原目录中复制过去的所有文件。你可以试一下这样操作:<pre class="prettyprint linenums">diff <(ls /original/dir/) <(ls /backup/dir/)</pre><a href="https://linux.die.net/man/1/diff">diff</a> 命令是一个逐行比较两个文件之间差异的工具。在上面的例子中,就使用了 < 让 diff 认为两个 ls 命令输出的结果都是文件,从而能够比较它们之间的差异。要注意,在 < 和 (...) 之间是没有空格的。我尝试在我的图片目录和它的备份目录执行上面的命令,输出的是以下结果:<pre class="prettyprint linenums">diff <(ls /My/Pictures/) <(ls /My/backup/Pictures/) 5d4 < Dv7bIIeUUAAD1Fc.jpg:large.jpg</pre>输出结果中的 < 表示 Dv7bIIeUUAAD1Fc.jpg:large.jpg 这个文件存在于左边的目录(/My/Pictures)但不存在于右边的目录(/My/backup/Pictures)中。也就是说,在备份过程中可能发生了问题,导致这个文件没有被成功备份。如果 diff 没有显示出任何输出结果,就表明两个目录中的文件是一致的。看到这里你可能会想到,既然可以通过 < 将一些命令行的输出内容作为一ߑ…
在这篇文章,我们继续来深入探讨尖括号的更多其它用法。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201902/12/115848wemcebuym6mlsuwm.png">Media</a>在<a href="https://linux.cn/article-10502-1.html">上一篇文章</a>当中,我们介绍了尖括号(<>)以及它们的一些用法。在这篇文章,我们继续来深入探讨尖括号的更多其它用法。通过使用 <,可以实现“欺骗”的效果,让其它命令认为某个命令的输出是一个文件。例如,在进行备份文件的时候不确定备份是否完整,就需要去确认某个目录是否已经包含从原目录中复制过去的所有文件。你可以试一下这样操作:<pre class="prettyprint linenums">diff <(ls /original/dir/) <(ls /backup/dir/)</pre><a href="https://linux.die.net/man/1/diff">diff</a> 命令是一个逐行比较两个文件之间差异的工具。在上面的例子中,就使用了 < 让 diff 认为两个 ls 命令输出的结果都是文件,从而能够比较它们之间的差异。要注意,在 < 和 (...) 之间是没有空格的。我尝试在我的图片目录和它的备份目录执行上面的命令,输出的是以下结果:<pre class="prettyprint linenums">diff <(ls /My/Pictures/) <(ls /My/backup/Pictures/) 5d4 < Dv7bIIeUUAAD1Fc.jpg:large.jpg</pre>输出结果中的 < 表示 Dv7bIIeUUAAD1Fc.jpg:large.jpg 这个文件存在于左边的目录(/My/Pictures)但不存在于右边的目录(/My/backup/Pictures)中。也就是说,在备份过程中可能发生了问题,导致这个文件没有被成功备份。如果 diff 没有显示出任何输出结果,就表明两个目录中的文件是一致的。看到这里你可能会想到,既然可以通过 < 将一些命令行的输出内容作为一ߑ…