Tenho o seguinte script:
#!/bin/bash
y=$(ls -t ./pics/0/*.png | head -n 2 | tail -n 1)
new=$(ls -t ./pics/0/*.png | head -n 1)
while true
do
if cmp --silent "$y" "$new" ; then
y=$(ls -t ./pics/0/*.png | head -n 1)
base64 $y | tr -d '\n' | sed '$ a \'
new=$(ls -t ./pics/0/*.png | head -n 1)
fi
done
O que estou fazendo errado? Para ser claro, meu objetivo é comparar se o arquivo mais recente é diferente do arquivo mais recente anterior e apenas se ele gerar um BASE64 exclusivo para STDOUT (ou seja, deve ser impresso apenas UMA VEZ).
Observe que o trecho a seguir NÃO funcionará com nomes de arquivos que contenham espaços, tabulações ou novas linhas.
Para saber mais sobre o
find
comando -usado aqui, consulte https://unix.stackexchange.com/a/240424/364705E uma solução usando
inotify-wait
: