Как найти и отсортировать каталог по самому длинному пути к файлу?

Я нахожусь на OS X, пытаясь подключиться к Microsoft OneDrive, у которого есть жесткий предел пути. Мне нужно найти самые длинные пути в каталоге.

  • Сохранять размер файла журнала без логротата
  • Возможность использования ОС с открытым исходным кодом, совместимого с OS X?
  • Как использовать cloc для поиска строк кода в пакете debian
  • Удаление бесконечно вложенных каталогов
  • Как я могу подсчитать количество разных символов в файле?
  • Есть ли способ узнать процент изображений и кода в заданном каталоге?
  • Найти определенный файл в ближайшем предке текущего рабочего каталога
  • Перемещение скомпилированного ассемблерного кода в загрузочный сектор устройства USB
  • ssh-add не поддерживается между перезагрузками
  • Что делает флаг `-C` именно в` scp`?
  • Как найти различия между macOS и linux wifi-драйверами на Mac-оборудовании?
  • Возобновление прерванного процесса копирования
  • 2 Solutions collect form web for “Как найти и отсортировать каталог по самому длинному пути к файлу?”

    Следующая команда даст вам количество символов каждого регулярного файла (удалить -type f для всех типов файлов, включая каталоги) под каталогом, в котором вы его выполняете, и отсортировать их так, чтобы самые длинные были последними:

     find . -type f -print|awk '{print length($0), $0}' | sort -n 

    Предполагается, что имена файлов и каталогов не содержат символов новой строки.

    Это самый длинный путь, который вы хотите, или самое длинное имя файла? Между foo/bar/baz и foobar , это foo/bar/baz (самый длинный путь) или foobar (имя длиннее baz )?

    С zsh :

     path_length() REPLY=$#REPLY name_length() REPLY=${#REPLY:t} # longest name: ls -ld -- **/*(DnO+name_length[1]) # longest path: ls -ld -- **/*(DnO+path_length[1]) 

    Обратите внимание, что он подсчитывает эти длины в количестве символов, а не в байтах. Вы можете изменить языковой стандарт на C для подсчета в байтах, но тогда мы не знаем, как имена файлов закодированы на удаленном хосте, и что соответствует этому пределу, о котором вы говорите. Например, € кодируется в один байт в iso8859-15, два в UTF-16 и три в UTF-8.

    Linux и Unix - лучшая ОС в мире.