Größe und Besitzer von Ordnern innerhalb eines Ordners anzeigen

Größe und Besitzer von Ordnern innerhalb eines Ordners anzeigen

Weiß jemand, wie man alle Ordner in einem Verzeichnis mit Größe, Ordner/Datei und Besitzer anzeigt?

Der einzige mir bekannte Befehl lautet: du -hs * „Aber das zeigt auch alle Unterordner an, zeigt aber nicht den Besitzer.“

Ich möchte beispielsweise die Informationen zu Größe, Ordner/Datei und Besitzer des Ordners/der Datei unter „/my/path/“ erhalten.

Kennt jemand einen Befehl, der mir diese Informationen liefern könnte?

Br Hultman

Antwort1

Sie könnten den findfolgenden Befehl versuchen:

find /my/path -maxdepth 1 -type d -printf "%u %g   " -exec du -h --max-depth=0 {} \;

-type dsoll alle Verzeichnisse (Filter ) eine Ebene unter dem Startpunkt /my/path(Option ) finden -maxdepth 1. Es wird dann

  • Verwenden Sie die -printfOption zum Drucken von Eigentümer und Gruppe und dann
  • Rufen Sie es du --max-depth=0für jedes gefundene Verzeichnis auf ( {}), um unter Verwendung des Mechanismus den Namen und die Gesamtgröße direkt hinter der Ausgabe der vorhergehenden -printfOption auszudrucken -exec.

Antwort2

Hier habe ich einen einfachen Ausschnitt für Sie

#!/usr/bin/env bash

unset fname owner size i

for f in "$@"
  do
    fname[i]="$f"
    owner[i]=$(stat -c %U "$f")
    size[i++]=$(stat -c %s "$f")
  done 

for i in "${!fname[@]}"
  do
    printf "User %s owns %s and the size is %d Kbytes\n" "${owner[i]}" "${fname[i]}" $((${size[i]} / 1024))
  done

Machen Sie das Skript ausführbar oder führen Sie es wie folgt aus: bash script_name [path]

chmod u+x script_name

Und führen Sie es aus

./script_name /my/path/*

verwandte Informationen