Linux показывает файлы в каталоге размером более 1 ГБ и показывает их размер

Портативный sh, не специфичный для bash -и без петель O (n ):

eval x=\$$(($#-1))

-1дает предпоследний аргумент; замените его нужной позицией относительно конца или полностью отбросьте, если вам нужен самый последний.

1
05.12.2020, 03:31
1 ответ

Возможны как минимум две причины:

  1. Возможно, ваш findничего не печатает. В этом случае xargsзапускает du -h, что эквивалентно du -h.. Исследуйте--no-run-if-emptyопцию GNU xargs. Или лучше привыкнуть к find … -exec …вместо find … | xargs …. Вот так:

    find. -maxdepth 2 -type f -size +1G -exec du -h {} + | sort -rh
    
  2. find -sizeпроверяет (почти )то, что показывает du --apparent-size, в то время как duбез этой опции может сильно расходиться, особенно когда файл разреженный. Вариант не переносной.

Я думаю, что в вашем случае виновата первая причина. Примечание ./<repo>/.git/infoне может происходить из find. -maxdepth 2 -type f, потому что его глубина равна 3. Это означает, что duрекурсивно работал с некоторым каталогом.

7
18.03.2021, 22:45

Теги

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