Загальне використання диска для конкретного користувача


12

Я хотів би бачити загальне використання диска для себе в певній файловій системі. Я виконав команду

du -h ~my_user_name

Однак у цьому списку перераховано кожен каталог, яким належить my_user_name. Я хотів би отримати загальну суму всієї цієї інформації. Який відповідний варіант пройти? я намагався

du -h -c ~my_user_name

але це не спрацювало.

Відповіді:



9

Du покаже вам загальну суму за одну папку, а не на кожного користувача.

Це може спрацювати, якщо ви хочете загальний розмір, скажімо, /home/example_user/і якщо тільки цей example_user має файли у цій папці. Якщо інші користувачі мають у них файли, то це не буде мати розмір усіх файлів, якими ви володієте, а загальний розмір усіх файлів у цій папці.

Щоб отримати інформацію на кожного користувача, виконайте такі дії:

  1. Якщо у вас включена квота , використовуйте ці команди.
  2. Скористайтеся функцією пошуку для прогулянки, хоча всі каталоги, в яких ви хочете порахувати свої файли. Використовуйте uid лише для вибору ваших файлів і збереження асоціативного масиву у невідомості для підрахунку підсумків.

find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'

Зауважте, для цього використовується специфічне розширення пошуку GNU.

  • Перша команда здійснює пошук у всіх файлах і каталогах у /path/to/search/.
  • -type fгарантує вибір лише файлів, інакше ви також підраховуєте розмір каталогів. (Спробуйте створити порожню папку. Мабуть, буде використовувати 4k диск).
  • -user username_whos_files_to_count вибирає результати лише від одного користувача
  • -printf "%s\n" буде надрукувати розмір.

Якщо ви просто запустите першу частину цього, ви отримаєте список номерів. Це розміри файлів. (Все інше знімається; друкується лише розмір завдяки команді друку% s.)

Потім ми можемо додати всі ці числа, щоб отримати підсумок. У прикладі це робиться з awk.


+1 хороший бал, дякую! відповідь нижче насправді було саме те, що я хотів. відмінність користувача / папки в моєму випадку не має великого значення
Алекс,

Приємно. du -schце проста команда, яка часто використовується. Відслідковувати того, хто володів тим, що коли було змішано, набагато складніше, хоча це можна зробити як один лайнер. Я використовував його колись, але в мене були проблеми з його реконструкцією сьогодні.
Геннес

Допомогли мені дуже, Ідеальне пояснення
Babin Lonston

2

Щоб знайти все використання певним користувачем, хороша команда:

find -user $USER -type f -exec du -chs {} +

Ви можете додатково змінювати залежно від конкретних потреб, наприклад, я часто хочу підсумовувати використання папок, і наступне працює добре:

find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +

Це знаходить лише каталоги на одному рівні, обмежує користувача, виключає батьківський каталог, а в кінці друкує кожен каталог та резюме.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.