Skript in Bash zum Scannen eines Ordners, um eine Docker-Datei zu verschieben und auszuführen

Skript in Bash zum Scannen eines Ordners, um eine Docker-Datei zu verschieben und auszuführen

Ich bin neu hier und arbeite derzeit an einem kleinen Projekt.

Ich muss ein Skript in Bash schreiben, um einen Ordner jedes Mal zu scannen, wenn eine Datei darin abgelegt wird. Im zweiten Teil sollte es die Datei in ein neues Verzeichnis verschieben, das mit dem von dieser Datei verwendeten Namen erstellt wird.

Ich dachte, ich benutzeinkronoderbetrachtenaber ich weiß nicht, ob das eine gute Lösung ist. Das Schema würde so aussehen.

directory="/usr/share/docker-compose"
if "*.yml" exist; then
   do 
      move /usr/share/used-images

Dank im Voraus.

Antwort1

Sie könnten inotifywait verwenden. Beispielskript:

#!/bin/bash

watchdir="$1"

if ! [ -d "$watchdir" ]; then
    echo "Dir $watchdir doesn't exist"
    exit 1
fi

while file=$(inotifywait --format "%f" -e 'create' -e 'moved_to' "$watchdir"); do
    if [ -f "$watchdir/$file" ]; then
        tmpname=$(tempfile -d "$watchdir")
        mv "$watchdir/$file" "$tmpname"
        mkdir "$watchdir/$file"
        mv "$tmpname" "$watchdir/$file/$file"
        # YOURCOMMANDS
    fi
done

verwandte Informationen