Как узнать общий размер всех файлов, находящихся в собственности пользователя?

Я пытаюсь выяснить общий размер всех файлов, принадлежащих данному пользователю.

Я пробовал это:

find $myfolder -user $myuser -type f -exec du -ch {} +

Но это дает мне ошибку:

отсутствует аргумент для exec

и я не знаю, как это исправить. Может кто-нибудь может помочь мне с этим?

3 ответа

Вам просто нужно прекратить -exec. Если вы хотите итоги для каждого каталога возможно -type d необходимо.

find $myfolder -user $myuser -type d -exec du -ch {} \;

Использование:

find $myfolder -user gisi -type f -print0 | xargs -0 du -sh

где пользователь gisi мой кот;)

Обратите внимание на вариант -s для подведения итогов

Далее обратите внимание, что я использую find ... -print0 который с одной стороны разделяет имена файлов по 0 байты, которые являются одним из немногих символов, которые не допускаются в именах файлов, а с другой стороны xargs -0 который использует 0 байт как разделитель. Это гарантирует, что даже экзотические имена файлов не будут проблемой.

Некоторые версии команды find не любят "+" для прекращения использования команды find "\;" вместо "+"

Другие вопросы по тегам