Последний шаг говорит достаточно: он не может начать прослушивание порта 9696. Это потому, что если это ваш второй туннель, вы должны использовать другой порт, в то время как 9696 обрабатывает первый.
Предполагая, что под размером вы подразумеваете использование диска файлами каталога, отличными от -, или совокупное использование диска всеми файлами, на которые ссылаются файлы каталога (, как использование вами du
предлагает ), с утилитами GNU вы могли бы сделать:
sudo LC_ALL=C du -al0d1 /etc |
sort -zrn |
tail -zn+2 |
head -zn1 |
cut -zf2- |
tr '\0' '\n'
tail
+ head
+ cut
также можно заменить на sed -z $'1d;s/^[^\t]*\t//;q'
.
Примечания:
du /etc/ -hsx *
(, который предполагает GNU find
и что POSIXLY_CORRECT
не находится в среде, поскольку вы используете параметры после не -аргументов параметра ), вы получаете использование диска /etc
и всех не -скрытых файлов в текущем каталоге. -a
и-d1
(расширения GNU )решает все проблемы *
, исключая скрытые каталоги или достигая предела количества аргументов. -h
не только не -переносим, но вы также теряете много точности (, так что, скорее всего, вы заставите вас сообщить о неправильном файле ), и вы усложните sort
работу, так что это вполне противоречит -продуктивный. -l
(расширения GNU ), жесткие ссылки учитываются только один раз, поэтому, если some-large-file
встречается как /etc/dir1/some-large-file
и /etc/dir2/other-link-to-some-large-file
, место на диске, занимаемое some-large-file
, учитывается только для одного из этих каталогов по du
. /etc
IIRC ).Поэтому, как правило, вы не можете использовать обработку текста на основе строки -, чтобы справиться с ними. Большинство утилит GNU имеют опции -z
или -0
для работы с записями с разделителями NUL. /etc
. Таким образом, беря вторую запись, мы на самом деле сообщаем о самом тяжелом файле/каталоге в /etc
, а не о втором -самом тяжелом. sort
без -s
. С sed просто добавьте:
| sed -n 2p
И не нужно делать эту дополнительную голову .
Завершить команду:
du /etc/ -hsx * | sort -rh | sed -n 2p
Если вы хотите использовать начало после сортировки, добавьте этот хвост:
| tail +2
Завершить команду:
du /etc/ -hsx * | sort -rh | head -2 | tail +2
Вероятно, одним из вариантов было бы перевернуть результат с помощью sort
еще раз и использовать head -1
? Нравится:
du /etc/ -hsx * | sort -rh | head -2 | sort -r | head -1
What if I only want to find the second biggest file? How can I do it?
Обязательная опция zsh:
zsh -c 'print -r /etc/**/*(DoL[-2])'
Это вызывает zsh и просит его напечатать аргумент,:
**/*
o
упорядочено )по размеру(L
длине ), по возрастанию D
включает dotglob
для этого одного шара, поэтому также считает скрытые файлы или файлы в скрытых каталогах. [-2]
)Использовать хвост
du /etc/ -hsx * | sort -rh | head -2 | tail -1