При записи на оптический диск, при работе с сетевыми папками и дисками, либо при работе в Windows, может возникнуть необходимость найти файлы с самым длинным названием.
Если имена файлов слишком длинные для данной файловой системы, то могут возникнуть ошибки разного рода: отказ программы записать файлы на DVD диск, либо Windows приложения не будут видеть часть файлов, которые расположены в папке с файлом, имеющим слишком длинное название.
Один из вариантов исправить ситуацию — найти файлы с длинными именами и переименовать их или удалить.
Как найти файлы с самыми длинными именами
Следующая команда ищет имена файлов в текущей директории, чья длина более 255 символов (в число 257 включены начальные ./):
find -regextype posix-extended -regex '.{257,}'
В этой команде можно явно указать путь до директории, в которой нужно выполнить поиск:
find '/путь/до/папки' -regextype posix-extended -regex '.{257,}'
Вы можете изменить размер имени для поиска:
find -regextype posix-extended -regex '.{240,}'
Пример выполнения команды:
find '/mnt/disk_d/Share/Архив работ/УП/' -regextype posix-extended -regex '.{190,}'
Сортировка файлов по длине имени файла
Кроме поиска имён файлов, длина которых больше определённого размера, можно вывести на экран имена всех файлов, отсортированных по количеству символов в имени и с указанием их размера. Для этого можно использовать такую команду:
find . | perl -pe 'print (length($_)-1)." ";' | sort -rn | less
Обратите внимание, что . (точка) в этой команде означает текущий каталог, вы можете явно указать директорию:
find '/mnt/disk_d/Share/Архив работ/УП/' | perl -pe 'print (length($_)-1)." ";' | sort -rn | less
Пример работы программы:
Ещё один вариант программы, которая делает это же самое, но для который не требуется PERL:
find . | awk '{print length,$0}' | sort -rn | less
Результат:
Как можно увидеть, хотя обе команды выполняют свою функции, методы подсчёта различаются и результаты тоже чуть различаются — вы можете выбрать ту из них, которая вам больше нравится.
Связанные статьи:
- Как найти все файлы, содержащие определённый текст (на Linux) (87.1%)
- 15 полезных практических примеров команды locate в Linux (61.1%)
- Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux (50%)
- Cloud Commander – веб файловый менеджер для управления файлами и программами Linux через браузер (50%)
- Подстановочные символы, раскрытие, использование кавычек и экранирование символов в Bash (50%)
- Полнотекстовый поиск по файлам MS Word и архивам в Linux (RANDOM - 11.1%)