gpt4 book ai didi

bash 脚本 inotifywait 在继续之前等待文件完全写入

转载 作者:行者123 更新时间:2023-12-04 12:12:01 24 4
gpt4 key购买 nike

我正在尝试设置监视脚本和 pdf 合并脚本的串联,以检查扫描仪将 pdf 写入的文件夹。第一个脚本的想法是监视文件夹,直到出现两个 pdf,然后调用第二个脚本。
现在的问题是,inotifywait 检测文件何时创建并按预期创建,并调用第二个脚本,但特别是对于较大的 pdf,这会导致失败,因为扫描仪可能仍会写入 pdf。我向 inotifywait 添加了 close_write 事件,但我认为这被忽略了,因为 create 事件已经为真。我添加了一个 sleep 作为解决方法,但这不仅丑陋,而且在超过固定超时的更大文件上也会失败。检查两个文件是否完全写入的最佳方法是什么。谢谢你。

文件夹检查脚本:

#! /bin/bash
n=0
inotifywait -m -e create,close_write $1 | while read line
do
n=$(find $1 -type f | wc -l);
echo $n
if [ "$n" -eq "2" ] ; then
echo "found $n files"
sleep 5
./pdfMergeMove.sh $1 cleanup
n=0
fi;
done

最佳答案

正如 pacholik 所指出的close_write 作为事件选项本身就足够了:

inotifywait -m -e close_write $1 | while read line

关于bash 脚本 inotifywait 在继续之前等待文件完全写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46542819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com