You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在find命令中添加cksum并在文件名后显示文件的cksum值

在find命令中显示文件的cksum值

嘿,这个需求挺实用的!其实通过find的参数配合cksum命令就能轻松实现,给你几种靠谱的方案:

方法1:直接用find + exec调用cksum

这是最直观的方式,因为cksum本身就会输出校验值和对应文件名,命令如下:

find /你的搜索路径 -type f -exec cksum {} \;
  • /你的搜索路径替换成你实际要查找的目录(比如/home/abu/docs)
  • -type f确保只查找文件(排除目录、链接等)
  • -exec cksum {} \;对每一个找到的文件执行cksum命令,{}代表当前匹配到的文件,\;是-exec的结束标记

执行后会输出类似这样的结果:

1234567890 1234 /home/abu/docs/file1.txt
0987654321 5678 /home/abu/docs/file2.jpg

方法2:自定义输出格式(先文件名后校验值)

如果你想调整输出顺序,比如先显示文件名再显示cksum值,可以用bash -c来包装命令:

find /你的搜索路径 -type f -exec bash -c 'echo "$1 $(cksum "$1" | cut -d" " -f1)"' _ {} \;

这里的逻辑是:

  1. bash -c启动一个子shell执行自定义命令
  2. $1指代传入的文件名({})
  3. cksum "$1" | cut -d" " -f1只提取cksum的校验值部分(默认cksum输出是“校验值 文件大小 文件名”,用cut拆分后取第一个字段)
  4. 最后把文件名和校验值拼接输出,结果类似:
/home/abu/docs/file1.txt 1234567890
/home/abu/docs/file2.jpg 0987654321

方法3:批量处理提升效率(适合大量文件)

如果要查找的文件数量很多,用xargs批量处理会比逐个exec更高效,同时还能兼容带空格/特殊字符的文件名:

find /你的搜索路径 -type f -print0 | xargs -0 cksum
  • -print0让find用空字符分隔文件名,避免空格等特殊字符导致的错误
  • xargs -0读取空字符分隔的输入,批量传给cksum命令

额外技巧:过滤特定文件

如果只想对特定类型的文件计算cksum,比如只找.txt文件,可以加-name参数:

find /你的搜索路径 -type f -name "*.txt" -exec cksum {} \;

内容的提问来源于stack exchange,提问作者Fazil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:19:10