Vérifiez que ce fichier n'est pas écrit avant de passer en script shell

J'ai besoin d'écrire un script Unix Shell Script trans.sh qui déplace les fichiers d'entrée csv du dossier /exp/files vers le répertoire /exp/ready . Les fichiers d'entrée csv sont écrits dans /exp/files dossier de /exp/files par un serveur SFTP dont je ne peux changer trivialement le comportement.

Dans le script shell trans.sh, je dois vous assurer avant de faire un déplacement de ce fichier d'entrée csv à partir du répertoire / exp / files, plus aucun autre processus n'est écrit sur le fichier. Comment puis-je le déplacer?

lsof pourrait être ce que vous voulez (c'est après tout, la commande de list open files ). Si vos fichiers ont une convention de dénomination connue, exécutez un lsof <filename> pour vérifier si cela est effectivement utilisé par une procédure. Si ce n'est pas le cas, lsof renverra un code de retour non nul.