Просмотр размера и владельца папок внутри папки

Просмотр размера и владельца папок внутри папки

Кто-нибудь знает, как просмотреть все папки в каталоге с указанием размера, папки/файла, владельца?

Единственная известная мне команда — du -hs * But, которая показывает все подпапки и не показывает владельца.

Например, я хотел бы получить информацию о размере, папке/файле, владельце папки/файла в «/my/path/».

Знаете ли вы команду, которая могла бы предоставить мне эту информацию?

Бр Хультман

решение1

Вы можете попробовать findкоманду:

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

следует найти все каталоги (фильтр -type d) на один уровень ниже начальной точки /my/path(опция -maxdepth 1). Затем он

  • используйте -printfопцию печати владельца и группы, а затем
  • вызывать du --max-depth=0для каждого найденного каталога ( {}), чтобы вывести имя и общий размер непосредственно после вывода предыдущей -printfопции, используя -execмеханизм.

решение2

Вот простой фрагмент для вас.

#!/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

Сделайте скрипт исполняемым или запустите его как bash script_name [path]

chmod u+x script_name

И запустите его.

./script_name /my/path/*

Связанный контент