Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

find files in /*/original

1 view
Skip to first unread message

Jan Novak

unread,
Jun 20, 2023, 3:52:15 AM6/20/23
to
Hallo,

ich brauche einen find Befehl, der mir alle Dateien, älter als 7 Tage in

/dir/*/original/

findet.

Der Befehl

printf %s\\n /dir/**/original/*

zeigt sie mir an, damit kann ich aber keinen "find" und ein "delete"
älterer Dateien machen.


Jan

Jan Novak

unread,
Jun 20, 2023, 8:01:45 AM6/20/23
to
Am 20.06.23 um 12:50 schrieb Stefan Ram:
> Jan Novak <rep...@gmail.com> writes:
>> ich brauche einen find Befehl, der mir alle Dateien, älter als 7 Tage in
>> /dir/*/original/
>> findet.
>
> Hier ist ein Beispiel, in dem "*" als Joker interpretiert
> werden sollte:
>
> find / -path "/dir/*/original" -type f -mtime +7 -print
>

Hallo Stefan,

bei mir findet er nichts mit obigem Beispiel.
Müsste es nicht eigentlich

find / -path "/dir/*/original/*" -type f -mtime +7 -print

heissen? Ich will ja in dem Ordner original alles ältere als 7 Tage?
Aber auch mit mein er Änderung kommt nichts heraus.

Wofür ist der 1. slash nach find?
Ich habe das auch mal ersetzt mit dem aktuell Verzeichnis, wo es starten
soll, ( also /dir/ ) klappt aber auch nicht.

Jan

Jan Novak

unread,
Jun 20, 2023, 8:46:22 AM6/20/23
to
Am 20.06.23 um 14:14 schrieb Stefan Ram:
> Jan Novak <rep...@gmail.com> writes:
> Beginne mit
> find . -print
> . Dies sollte den Inhalt des aktuellen Verzeichnisses rekursiv
> anzeigen und mit Strg-C abgebrochen werden können.
> find / -print
> sollte das gesamte Dateisystem rekursiv anzeigen.
> "." beziehungsweise "/" war hierbei der Ordner, in dem das find
> startet.
> Nun kannst Du schrittweise weitere Einschränkungen hinzufügen,
> um zu sehen, ab wann keine Ausgabe mehr erscheint.
> find / -path "/usr/*" -print
> sollte alle Pfade zeigen, die mit "/usr" beginnen.
> find / -path "/dir/*/original/*" -print


Das step-by-step war der "trick":-)
Der -path Teil ist natürlich der, innerhalb des $bdir Verzeichnisses.

bdir="/pfad/"
cd $bdir
find $bdir -path "*/original/*" -type f -print

zeigt mir genau das, was ich suche. Muss nur noch die Zeiteinschränkung
machen und dann die Dateien löschen ...

Danke!!!

Jan


Stefan Reuther

unread,
Jun 20, 2023, 12:51:37 PM6/20/23
to
Am 20.06.2023 um 12:50 schrieb Stefan Ram:
> Jan Novak <rep...@gmail.com> writes:
>> ich brauche einen find Befehl, der mir alle Dateien, älter als 7 Tage in
>> /dir/*/original/
>> findet.
>
> Hier ist ein Beispiel, in dem "*" als Joker interpretiert
> werden sollte:
>
> find / -path "/dir/*/original" -type f -mtime +7 -print

Über alles (inkl. /proc, eingehängter Wechselmedien und Netzlaufwerke)
zu iterieren und dann das meiste wegwerfen ist jetzt nicht so klever.

Wenn mit '/dir/**/original' schon ein passendes Wildcard bekannt ist,
kann man auch damit beginnen:

find /dir/**/original -type f -mtime +7 -print


Stefan

Jan Novak

unread,
Jun 21, 2023, 3:21:57 AM6/21/23
to
Am 20.06.23 um 18:39 schrieb Stefan Reuther:
verdammt ...:-) das wäre zu einfach gewesen.
Danke auch dir für den Tipp.

Jan

0 new messages