我有一个在文件夹中运行的命令,该命令在终端上输出 MD5 哈希值和文件名:
ls |sort -nr | xargs md5sum
我需要将此输出保存在一个文本文件中,我可以下载该文件并将其与其他客户计算机上的另一个文件夹进行比较。如何修改该命令,使其输出存储在一个文件中/tmp
?我使用的是红帽5。
答案1
解析输出的结果是一个坏主意ls
。主要工作ls
是列出文件的属性(大小、日期等)。 shell 本身完全能够列出目录的内容,通配符。
md5sum
对当前目录中的所有文件运行并将输出放入文件中非常简单:重定向其输出到所需的输出文件。
md5sum * >/tmp/md5sums.txt
如果您希望输出按文件名排序,管道的输出md5sum
到sort
.
md5sum * | sort -k 2 >/tmp/md5sums.txt
请注意,仅当文件名是纯数字时,数字排序 ( -n
) 才会给出有用的结果。如果您需要的只是输出是确定性的,那么如何排序并不重要。
答案2
输出重定向通过以下命令完成
commandname > filename
答案3
实际上,与大多数非 *nix 平台上的方式相同。
somecommand > somefile
不过您不需要对其进行排序,因为md5sum -c
它将为您检查文件。