Auflisten von Dateien in bestimmten Unterverzeichnissen

Auflisten von Dateien in bestimmten Unterverzeichnissen

Ich habe eine Ordnerstruktur wie diese:

/1/a/x
/1/b/y
/2/a/z
/2/b/d
/3/a/r
/3/b/e

Ich möchte Dateien + Dateigröße für alle Dateien in Unterordnern in den Ordnern „a“ auflisten. Ich habe versucht, find zu verwenden, komme aber nicht weiter. Was wäre der richtige Befehl?

Antwort1

Versuchen Sie Folgendes, um Größe und vollständigen Pfad zu drucken.

find /[123]/a/* -type f -printf '%s %p\n'

Sehenman findfür andere Formatzeichenfolgen, die Sie mit verwenden könnten -printf. Insbesondere möchten Sie möglicherweise %Poder %fanstelle von %pund möglicherweise %banstelle von %s.

[123]passt zu einem Namen, der aus einer einzelnen Ziffer im Bereich 1-3 besteht; erweitern Sie es vielleicht auf *oder etwas eingeschränkter, wenn Ihr Beispiel nicht genau der Realität entspricht, die Sie zu beschreiben versuchen.

GNU findsollte Standard auf CentOS sein, aber wenn Sie richtig portablen Code benötigen, verwenden Sie vielleicht find ... -exec stat {} \;(aber beachten Sie, dass statauch das Portabilitätsprobleme hat; der Befehl sollte auf den meisten Plattformen vorhanden sein, aber wie man ihn dazu bringt, etwas Bestimmtes zu drucken, variiert zwischen den Implementierungen). Eine andere Möglichkeit ist, find ... -lsaber dann stehen Sie vorAnalyse ls.

Wenn Sie keine Unterverzeichnisse durchsuchen müssen, brauchen Sie dies nicht find.

stat -c '%s %n\n' /[123]/a/*/*

verwandte Informationen