我正在观看传入的加密文件,它们有两个扩展名,例如testfile<date>.dat.pgp
.
问题是:一旦文件被解密,它就会testfile<date>.dat
在监视器目录中创建一个新文件(),这会触发监视进程的另一个不需要的运行。
如何排除testfile<date>.dat
但包含testfile<date>.dat.pgp
?
这是我的代码:
inotifywait -m -e create --format '%w%f' "${MONITORDIR}" | while read NEWFILE
do
#decrypts testfile.dat.pgp
# new file "testfile<date>.dat" is created in the $MONITOR_DIR which triggers
# the inotifywait process to run again.
done
答案1
将您的呼叫转接到grep
inotifywait -m -e create --format '%w%f' "${MONITORDIR}" |\
grep '.dat.pgp$' --line-buffered | while read NEWFILE
do
#decrypts testfile.dat.pgp
# new file "testfile.dat" is created in the $MONITOR_DIR which triggers
# the inotifywait process to run again.
done
将inotifywait
只观看扩展名为.dat.pgp
.
答案2
您也可以跳过 while read 循环内的文件。
inotifywait -m -e create --format '%w%f' "${MONITORDIR}" |\
while read -r NEWFILE; do
if [[ $NEWFILE == *.dat.pgp ]]; then
#decrypts testfile.dat.pgp
# new file "testfile.dat" is created in the $MONITOR_DIR which triggers
# the inotifywait process to run again.
fi
done
我还没有测试该代码,但测试应该只处理以*.dat.gpg