我喜欢编写一个 Bash 脚本来生成文件的 sha256sum 哈希,并将其输出保存为 hash 和 only filename.extension
,不包括路径。
到目前为止,我尝试过的以下两个脚本都没有得到我想要的输出:
注意:每次运行脚本时都会有一个具有新名称的新文件,因此我*.iso
在脚本中使用。
(1)
#!/bin/bash
cd /home/admn/Downloads
find -maxdepth 1 -type f -name "*.iso" -exec bash -c "sha256sum '{}' > '{}'.sha256" \;
exit;
这会创建一个文件Test.iso.sha256
,但有一个输出:
e64d11052abf5c3e19f0cd60e0b9c6196d8cb8615eba415ef1a3ac746f4b0c29 ./Test.iso
虽然我只想Test.iso
没有./
(2)
#!/bin/bash
cd /home/admn/Downloads
fullfilename="/home/admn/Downloads/*.iso"
filename=$(basename "$fullfilename")
sha256sum $filename > "$filename".sha256
exit;
这确实会生成我想要的输出:e64d11052abf5c3e19f0cd60e0b9c6196d8cb8615eba415ef1a3ac746f4b0c29 Test.iso
但是它创建的文件*
在其中而不是 name: *.iso.sha256
。谢谢。
操作系统:Ubuntu 伴侣 21.10
Bash:版本 5.1.8(1)-release (x86_64-pc-linux-gnu)
应该足够了
如果要在添加 sha256 扩展名之前删除 .iso 扩展名,请更改
$f.sha256
为。${f%.iso}.sha256