Я пытаюсь отладить проблему с помощью моего инструмента резервного копирования Backblaze, где-то у меня есть файл с очень длинным путем, который мне нужно найти. Какую терминальную команду я могу использовать, чтобы найти файл с самым длинным полным путем или перечислить что-то вроде 10 лучших файлов с длинными именами?
1 ответ
Следующая команда должна сделать работу:-
find /DirHead|while read -r f; do echo $(wc -c <<<$f): $f; done|sort -n|tail -n 1
После комментария Гордона Дэвиссона, есть более аккуратная альтернатива:
find /DirHead | awk '{print length($0), $0}' | sort -n | tail -n 1
Вы можете установить /DirHead
в /
, но это будет очень медленно, поэтому, если у вас есть идея, где может находиться этот длинный путь, он ускорит процесс, если вы его используете.
Это не будет следовать символическим ссылкам: если вы хотите сделать это, вам нужно будет добавить опции для find
.
Для каждого файла wc -c
подсчитывает количество байтов в имени файла из стандартного ввода, и это число выводится вместе с именем файла; последняя строка числовой сортировки будет самой длинной, или tail -n 10
перечислит 10 самых длинных.
Я проверил это на Ubuntu, не имея легкого доступа к OS/X.