Я пытаюсь сократить имя файла, сохраняя расширение.
Я думаю, cut
может быть лучшим инструментом для использования, но я не уверен, как сохранить расширение файла.
Например, я пытаюсь переименовать abcdefghijklmnop.txt
в abcde.txt
Я бы хотел просто отрезать конец имени файла, чтобы общая длина символа не превышала [ в этом примере] 5 символов.
Меня не волнуют конфликты имен файлов, потому что мой набор данных, скорее всего, не будет содержать их, и в любом случае я сделаю поиск, проанализирую файлы и протестирую, прежде чем переименовать что-либо .
Основой для этого в конечном счете является то, что я хочу массово усечь имена файлов, длина которых превышает 135 символов, чтобы я мог rsyn c файлы в зашифрованный общий ресурс на NAS-устройстве Synology.
Я нашел хороший способ поиска по всем именам файлов, длина которых превышает 135 символов: find . -type f | awk -F'/' 'length($NF)>135{print $0}'
И я бы хотел передать это простой команде вырезания, чтобы обрезать имя файла до размера. Возможно, есть лучший способ, чем этот. Я нашел способ сократить имена файлов при сохранении расширений , но мне нужно пройти через все подкаталоги.
Любая помощь будет оценена, спасибо!
Обновление для уточнения:
Я хотел бы использовать однострочник с таким синтаксисом:
find . -type f | awk -F'/' 'length($NF)>135{print $0}' | some_code_here_to_shorten_the_filename_while_preserving_the_extension