Verzeichnis mit dem heutigen Datum erstellen und Dateien dorthin verschieben

Verzeichnis mit dem heutigen Datum erstellen und Dateien dorthin verschieben

Ich schreibe ein Skript, um ein Verzeichnis mit dem Namen des heutigen Datums (yyyy_mm_dd) zu erstellen und dann alle Dateien, die mit dem heutigen Datum enden, in dieses Verzeichnis zu verschieben. Gibt es eine bessere Möglichkeit, die Dateien in das Verzeichnis zu verschieben, da das, was ich getan habe, auch das Verzeichnis auswählt?

now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/

Antwort1

mv *?"$now" "$now/."

stellt sicher, dass Ihr gerade erstelltes Verzeichnis nicht zum Verschieben ausgewählt wird, indem mindestens ein Zeichen ( ?) vor dem Zeitstempel stehen muss.

Antwort2

Der findBefehl kann sowohl nach Dateitypen als auch nach Dateinamen filtern.
Ich denke also, dass dies das gewünschte Ergebnis liefert:

now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/

Sie sollten jedoch darüber nachdenken, ob Ihre Dateinamen Unregelmäßigkeiten aufweisen (z. B. andere Verzeichnisse, die die Datumszeichenfolge enthalten), bevor Sie dies für einen großen Stapel ausführen.

verwandte Informationen