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

Путем проб и ошибок, черпая вдохновение из bash time с nohup , я пришел к следующему:

$ nohup bash -c 'time./main &> /dev/null' > runtime.out &
[1] 23178
nohup: ignoring input and redirecting stderr to stdout
$ 
[1]+  Done                    nohup bash -c 'time./main &> /dev/null' > runtime.out
$ cat runtime.out 

real    0m0.004s
user    0m0.002s
sys     0m0.002s

Это перенаправит stdoutиз timeна runtime.out, распечатает stdoutиз nohupна терминал и перенаправит stdoutи stderrиз mainна /dev/null.

1
15.04.2020, 16:21
2 ответа

Вы можете попробовать команду 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.
0
19.03.2021, 02:29

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

#!/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/*
0
19.03.2021, 02:29

Теги

Похожие вопросы