Я пытаюсь отладить проблему с помощью моего инструмента резервного копирования Backblaze, где-то у меня есть файл с очень длинным путем, который мне нужно найти. Какую терминальную команду я могу использовать, чтобы найти файл с самым длинным полным путем или перечислить что-то вроде 10 лучших файлов с длинными именами?

1 ответ1

2

Следующая команда должна сделать работу:-

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .