ZaLinux.ru

Как найти имена файлов, чья длина превышает определённое значение

При записи на оптический диск, при работе с сетевыми папками и дисками, либо при работе в 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

Результат:

Как можно увидеть, хотя обе команды выполняют свою функции, методы подсчёта различаются и результаты тоже чуть различаются — вы можете выбрать ту из них, которая вам больше нравится.

Рекомендуемые статьи:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *