Linux-Befehl/Skript zum Suchen aller Dateien in einem Verzeichnis mit einer 4-stelligen Nummer

Linux-Befehl/Skript zum Suchen aller Dateien in einem Verzeichnis mit einer 4-stelligen Nummer

Ich habe einen Ordner, der mehrere andere Ordner enthält, die alle in diesem Format benannt sind:

Company XYZ (1999 OneWordDescription)

Ich versuche, diejenigen herauszufiltern, die als 1995 oder älter gekennzeichnet sind, damit ich sie in einen anderen Ordner verschieben und dann manuell löschen kann. Das Änderungs-/Erstellungsdatum hilft nicht weiter, da diese alle seitdem geändert wurden und die Erstellungsdaten aus irgendeinem Grund einfach nicht korrekt sind.

Welchen Linux-Befehl oder welches Skript könnte ich ausführen, um alles mit „(1995“ und älter) in ein anderes Verzeichnis zu verschieben?

Antwort1

Um alle Ordner für die Jahre von 1980 bis einschließlich 1995 zu verschieben, führen Sie Folgendes aus:

shopt -s nullglob
mv *'('{1980..1995}*/ /some/path/

Der shopt -s nullglobBefehl ist nicht unbedingt erforderlich, verhindert aber Fehlermeldungen bei fehlenden Jahreszahlen.

Oben werden Klammererweiterungen verwendet, {1980..1995}um alle Jahre explizit zu generieren. Sie können sehen, wie die Klammererweiterung mit nur einer echoAnweisung funktioniert:

$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995

verwandte Informationen