Déplacement de fichiers avec des scripts bash

J’ai un script bash qui surveille un dossier. Si quelque chose est ajouté au dossier, le script déplacera tout le contenu du dossier surveillé vers la destination définie.

LE PROBLÈME: – Le script ne parvient pas à déplacer les fichiers du dossier surveillé vers le dossier de destination via FileZilla (FTP). Le script fonctionne si vous déplacez le fichier vers le dossier surveillé manuellement via une invite du shell. FTP est le seul format qui ne fonctionne pas correctement.

Des idées ce que le problème peut être?

Voici le script:

inotifywait -m ~/folderA/fileA -e moved_to | while read path action file; do #echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file mv ~/folderA/fileA/* "/folderB/myNewDest" done 

Tout d’abord, en ayant inotifywait -e moved_to surveiller uniquement les fichiers déplacés vers le répertoire cible, vous omettez de surveiller les fichiers qui ont été écrits ou remplacés , par exemple par Filezilla . Ajoutez -e modify -e create à votre commande ou, à moins que vous ne inotifywait une raison convaincante d’ignorer certains événements inotifywait , inotifywait toutes les options -e whatever .

Deuxièmement, en ne citant pas les fichiers from dans votre commande mv ~/folderA/fileA/* "/folderB/myNewDest" vous courez le risque d’être attrapé par des noms de fichiers idiots, par exemple, foo;rm -rf * . je voudrais suggerer

 find ~/folderA/fileA/ -maxdepth 0 -type f -print0 | \ xargs -0 mv --target-directory=/folderB/myNewDest -- 

qui fait la même chose, mais plus en toute sécurité.