Você pode usar lsof para verificar se algum processo está acessando esse arquivo. No entanto, isso não protegeria contra outro processo que alterasse o arquivo após que você verificou o acesso em seu shell script.
Para evitar condições de corrida, eu usaria operações de arquivo atômico, como mv , para marcar que seu script de shell ou outro software não "pegou" o arquivo. Esta é uma chamada do kernel e é garantida como sendo atômica (como em, se dois processos chamam mv no mesmo arquivo ao mesmo tempo, um será bem-sucedido e o outro falhará).
Outra possibilidade é usar uma ferramenta de bloqueio externa como lockfile-progs , mas aquelas que você não pode usar do software que solta o arquivo. mv é universal, embora seja uma solução indiscutivelmente suja.