Eu gosto de escrever um script Bash para gerar o hash sha256sum de um arquivo e salvar sua saída com hash e only filename.extension
, excluindo o caminho.
Não estou obtendo a saída desejada com os dois scripts a seguir que tentei até agora:
Nota: Haverá um novo arquivo com um novo nome toda vez que o script for executado, por isso estou usando *.iso
no script.
(1)
#!/bin/bash
cd /home/admn/Downloads
find -maxdepth 1 -type f -name "*.iso" -exec bash -c "sha256sum '{}' > '{}'.sha256" \;
exit;
Isso cria um arquivo, Test.iso.sha256
mas com uma saída:
e64d11052abf5c3e19f0cd60e0b9c6196d8cb8615eba415ef1a3ac746f4b0c29 ./Test.iso
Enquanto eu só quero Test.iso
sem./
(2)
#!/bin/bash
cd /home/admn/Downloads
fullfilename="/home/admn/Downloads/*.iso"
filename=$(basename "$fullfilename")
sha256sum $filename > "$filename".sha256
exit;
Isso gera a saída que eu quero: e64d11052abf5c3e19f0cd60e0b9c6196d8cb8615eba415ef1a3ac746f4b0c29 Test.iso
mas o arquivo que ele cria tem *
em vez de name: *.iso.sha256
. Obrigado.
SO: Ubuntu MATE 21.10
Bash: Versão 5.1.8(1)-release (x86_64-pc-linux-gnu)
Deve ser suficiente fazer
Altere
$f.sha256
para${f%.iso}.sha256
se você deseja remover a extensão .iso antes de adicionar a extensão sha256.