gpt4 book ai didi

find - 列出所有文件的 md5sum : find command with xargs?

转载 作者:行者123 更新时间:2023-12-01 22:21:49 26 4
gpt4 key购买 nike

我正在使用下面的命令生成文件列表及其 m5sum。问题是某些文件或文件夹的名称中有空格。我将如何处理这些?

find -type f -name \* | xargs md5sum

最佳答案

尝试:

find . -type f -exec md5sum {} +

使用此命令,find 将对找到的文件运行 md5sum

MacOS:根据 MacOS find man page , find 在 Mac 上不支持 + 选项。相反,需要效率稍低(见下面的注释 3)的形式:

find . -type f -exec md5sum {} \;

注意事项:

  1. -name\* 告诉 find 搜索所有文件。由于这是默认设置,因此无需指定。

  2. 现代文件名中包含空格是很常见的。事实上,他们的名字中甚至可以有换行符。因此,xargs 通常不能安全使用,除非使用 -0--null 选项告诉它使用 NUL 分隔的输入.这可以与 find 的 -print0 结合使用,它告诉 find 生成 NUL 分隔的输出。然而,由于 -exec 可以做 xargs 可以做的大部分事情,并且可以安全地使用困难的文件名,所以 -exec 形式是通常首选。

  3. 如果我们使用了 -exec md5sum {}\; 形式,那么 find 将为每个文件运行一次 md5sum成立。相比之下,-exec md5sum {} + 形式将在命令行中放置许多文件名。这大大减少了必须启动的进程数。

例子

上述命令的示例输出如下所示:

$ find . -type f -exec md5sum {} +
e75632e8a11db7513c2a9f25cb6c9627 ./file1
004dedba9b67f3a93924db548fd4d6ef ./file2
48645402a2cf6ada3548ad69d8d906db ./dir1/file1
6a182d8fe659c067897be7fde72903ea ./dir1/file2

关于find - 列出所有文件的 md5sum : find command with xargs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39604202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com