列出所有文件的md5sum

时间:2016-09-20 21:43:41

标签: find md5sum

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

find -type f -name \* | xargs md5sum

2 个答案:

答案 0 :(得分:1)

尝试:

find . -type f -exec md5sum {} +

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

注意:

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

  2. 现代文件名通常在名称中包含空格。事实上,他们甚至可以在名字中加上换行符。因此,xargs通常不安全,除非使用-0--null选项告诉它使用NUL分隔的输入。这可以与find -print0结合使用,告诉find生成NUL分隔的输出。但是,由于-exec可以执行xargs可以执行的大多数操作并且可以安全地使用困难的文件名,因此通常首选-exec表单。

  3. 如果我们使用了-exec md5sum {} \;表单,则find会为找到的每个文件运行md5sum一次。相反,表单-exec md5sum {} +将在命令行中放置许多文件名。这大大减少了必须启动的进程数。

  4. 实施例

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

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

答案 1 :(得分:0)

找到可以直接组成xargs并避免使用|使用 input[type="text"] { max-width:none; } 标志命令。在此语法中,您使用input,select,textarea { max-width: 280px;} 表示找到的文件的名称,If IsDate(txtStartDate) Then 表示命令的结束。

因此,您应该能够运行此命令以获得所需的结果:

-exec

如果你真的想使用管道,那么你需要告诉find用null和xargs来分隔响应,以期望这样的空分隔参数:

{}