Ersetzen Sie die „10 Minuten“ durch einen beliebigen Wert. Grundsätzlich möchte ich die Datei nur verschieben, wenn sie nicht mehr wächst. Wie kann ich dies über die Befehlszeile oder ein Bash-Skript tun?
Bevorzugt wird eine Lösung, die einfach umzusetzen ist cron
.
Einzelheiten:
- Betriebssystem: CentOS
- Was ich bisher versucht habe: nichts, weil ich nicht weiß, wo ich überhaupt anfangen soll
- Welche Art von Dateien: alle Dateien in einem Verzeichnis
Antwort1
Einzeiliger Befehl hier:
find /path/to/dir1 -type f ! -mmin -10 -exec mv {} /path/to/dir2 \;
Ersetzen Sie es -10
durch alles, was Sie möchten. Die Regel lautet:
+n for greater than n,
-n for less than n,
n for exactly n.
Antwort2
Es gibt viele Wege.
Verwenden von „find“:
if find some_directory -mmin +10 | grep "^filename$" ; then
mv filename somewhere_else
fi
Eine andere Möglichkeit wäre, die MD5-Summe zu berechnen und diese zu vergleichen
touch .filename.md5
prev_md5=$(cat .filename.md5)
new_md5=$(md5sum filename)
if [ "$prev_md5" = "$new_md5" ] ; then
mv filename somewhere_else
fi
echo "$new_md5" > .filename.md5
und führen Sie das alle 10 Minuten aus.