如何将命令输出重定向到文件?

1 io-redirection shell-script hashsum

我有一个在终端上输出 MD5 哈希和文件名的文件夹中运行的命令:

ls |sort -nr | xargs md5sum
Run Code Online (Sandbox Code Playgroud)

我需要一个文本文件中的输出,我可以下载该文件并将其与另一个客户机器上的另一个文件夹进行比较。如何修改命令,使其输出存储在 say 中的文件中/tmp?我正在使用红帽 5。

Gil*_*il' 6

解析ls. 的主要工作ls是列出文件的属性(大小、日期等)。shell 本身完全有能力用通配符列出目录的内容。

md5sum在当前目录中的所有文件上运行并将输出放在一个文件中非常简单:其输出重定向到所需的输出文件。

md5sum * >/tmp/md5sums.txt
Run Code Online (Sandbox Code Playgroud)

如果您希望输出按文件名排序,请将输出通过管道传输md5sumsort.

md5sum * | sort -k 2 >/tmp/md5sums.txt
Run Code Online (Sandbox Code Playgroud)

请注意,数字排序 ( -n) 只会在文件名纯数字时给出有用的结果。如果您所需要的只是输出是确定性的,那么您的排序方式并不重要。

  • @ZacAnderson 如果两台服务器之间有网络连接,则有更简单的方法来检查它们是否相同,例如`rsync -van /local/path remoteserver:/remote/path`(删除`-n` 以覆盖远程文件与本地文件)。 (4认同)