почему не работает мой 'найти -exec du'?

Необходимо использовать правильный путь, чтобы получить доступ к изображению после его копирования. /home/John/Desktop/anyfilename сработало. Однако файл кажется зашифрованным (101010 ). Если мне нужно перенести образ обратно на флэш-накопитель, если исходный образ флэш-диска будет поврежден, не знаю, будет ли проблема с шифрованием. Спасибо всем, кто внес свой вклад.

0
23.11.2021, 15:07
1 ответ

Подводя итог, duподсчитывает каталоги только один раз, поэтому

du -sh. somedir

будет показывать только ., потому что somedirучитывается в .. Порядок важен, поэтому

du -sh somedir.

покажет как somedir, так и .и не будет учитывать somedirв ..

Ваша команда findвключает в себя ., так что это все, что вы видите, поскольку она появляется первой. Вы можете избежать этого, указав минимальную глубину; тогда вы увидите итоги для всех каталогов непосредственно в текущем каталоге.

Если это все, что вам нужно, тогда

du -sh */

даст тот же результат без использования find.

Если вы хотите получить подробную информацию о выходных данных каталога -,вам нужно сказать find, чтобы сначала перечислить глубину каталогов -; -pruneтогда не работает, но работает фильтрация по путям:

find. -mindepth 1 -depth -type d \! -path '*/.*' -exec du -sh {} +

(Обратите внимание, что размеры скрытых каталогов по-прежнему будут учитываться в размере любого не -скрытого родительского каталога.)

Если ваш duподдерживает --exclude, вы можете использовать его для достижения того же эффекта:

du -h --exclude '*/.*'./
4
23.11.2021, 15:41

Теги

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