我有以下脚本:
#!/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
我究竟做错了什么?要明确我的目标是比较最新文件是否与以前的最新文件不同,并且只有当它生成一个唯一的 BASE64 到 STDOUT 时(意味着它应该只打印一次)。
请注意,以下代码段不适用于包含空格、制表符或换行符的文件名。
要了解有关
find
此处使用的 -command 的更多信息,请参考https://unix.stackexchange.com/a/240424/364705以及使用的解决方案
inotify-wait
: