Кто-нибудь знает, как просмотреть все папки в каталоге с указанием размера, папки/файла, владельца?
Единственная известная мне команда — 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/*