Frage

Wie kann ich Dinge geschaffen „30. Juli 04.37“ finden und sie zu / tmp bewegen? Etwas falsch:

find .  -ctime "0037043007" -exec mv {} /tmp +
War es hilfreich?

Lösung

Sehen Sie die GNU finden (und die Zeit Eingabeformate Informationen zu ).

Insbesondere die -newerct '30-Jul-2009 04:37' Option scheint die meisten zu tun, was Sie wollen.

Der einzige Haken ist, dass der Mann Seite bedeutet, dass es für Dateien strikt neuer als zeit funktioniert. Das legt nahe, Sie brauchen die absolute Zeit zu verwenden:

1248957000 = 2009-07-30 05:30:00  (TZ = US/Pacific = UTC-07:00)

-newerct @1248957000

Damit bleibt immer noch das Problem, wie mit der streng größer als Semantik zu behandeln.

-newerct @1248956999 -a ! -newerct @1248957001

Dies funktioniert, aber ist unbestreitbar chaotisch (und vorausgesetzt, dass Sie Werkzeuge haben den Unix-Zeitstempel von einem Datum / Zeit-Wert zu erhalten).

Sie müssen eine neue Version von genug find für diese arbeiten (GNU findutils 4.4.2 aktuell ist).

Andere Tipps

for file in $(ls -lR | grep "Jul 14" | awk '{print $9}')
do
mv $file /tmp
done

Ich bin nicht sicher, warum Sie die „exec {} +“ Syntax verwenden ... Wie wäre es damit:

find . -ctime "0037043007" -exec mv \{} /tmp/ \;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top