Чтобы вывести список файлов по размеру в Unix - PullRequest
1 голос
/ 23 марта 2011

ЦЕЛЬ: получить список файлов, занимающих больше места в unix

с помощью приведенной ниже команды

ssh имя_сервера du / имя_папки / * | grep -v 'не может' | сортировать -nr | голова -10

Использование sort -nr для рассмотрения в качестве числового и сортировки в обратном порядке (чтобы файлы занимали больше места)

Использование grep -v 'невозможен', поскольку нет доступа к нескольким папкам, и эти строки необходимо игнорировать перед сортировкой

Ниже приведен пример вывода

624    /folder1/folder2/conf
16     /folder1/folder2/error/include
192    /folder1/folder2/error
284    /folder1/folder2/htdocs
264    /folder1/folder2/icons/small
du: cannot read directory `/folder1/folder2/file1': Permission denied
du: cannot read directory `/folder1/folder2/file3': Permission denied

Проблемы с командами grep и sort, поскольку сообщения об ошибках не фильтруются

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Вам нужно перенаправить stderr в stdout, используя 2>&1, чтобы вы могли выводить сообщения об ошибках. Вы также должны экранировать подстановочный знак, чтобы он раскрывался на удаленной машине, а не на локальной.

ssh serverName du /folderName/\* 2>&1 | grep -v 'cannot' | sort -nr | head -10
0 голосов
/ 23 марта 2011

Вам не нужен grep, если вы закрываете stderr.

ssh serverName du /folderName/\* 2>&- | sort -nr | head -10

Обратите внимание, что подстановочный знак экранирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...