Как узнать общий размер всех файлов, находящихся в собственности пользователя?
Я пытаюсь выяснить общий размер всех файлов, принадлежащих данному пользователю.
Я пробовал это:
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 "\;" вместо "+"