我正在使用以下命令生成文件列表及其m5sum。问题是某些文件或文件夹名称中有空格。我该如何处理?
find -type f -name \* | xargs md5sum
答案 0 :(得分:1)
尝试:
find . -type f -exec md5sum {} +
使用此命令,find
将对找到的文件运行md5sum
。
注意:
-name \*
告诉find
搜索所有文件。由于这是默认值,因此无需指定它。
现代文件名通常在名称中包含空格。事实上,他们甚至可以在名字中加上换行符。因此,xargs
通常不安全,除非使用-0
或--null
选项告诉它使用NUL分隔的输入。这可以与find -print0
结合使用,告诉find
生成NUL分隔的输出。但是,由于-exec
可以执行xargs
可以执行的大多数操作并且可以安全地使用困难的文件名,因此通常首选-exec
表单。
如果我们使用了-exec md5sum {} \;
表单,则find
会为找到的每个文件运行md5sum
一次。相反,表单-exec md5sum {} +
将在命令行中放置许多文件名。这大大减少了必须启动的进程数。
上述命令的示例输出如下:
$ find . -type f -exec md5sum {} +
e75632e8a11db7513c2a9f25cb6c9627 ./file1
004dedba9b67f3a93924db548fd4d6ef ./file2
48645402a2cf6ada3548ad69d8d906db ./dir1/file1
6a182d8fe659c067897be7fde72903ea ./dir1/file2
答案 1 :(得分:0)
input[type="text"] {
max-width:none;
}
标志命令。在此语法中,您使用input,select,textarea {
max-width: 280px;}
表示找到的文件的名称,If IsDate(txtStartDate) Then
表示命令的结束。
因此,您应该能够运行此命令以获得所需的结果:
-exec
如果你真的想使用管道,那么你需要告诉find用null和xargs来分隔响应,以期望这样的空分隔参数:
{}