Attention: For whose who doesn't speak russian, please use google translate of this page, or just find some english words in keypoints.
Сегодня небольшая заметка о linux. Название статьи по английски, т.к. мало ли кто из гугла будет искать, я лично ничего похожего не нашла.
Задача, у вас есть файлы, вида
- 1.jpg
- 2.jpg
- 20.jpg
- 3.jpg
- 30.jpg
и т.п. (в моём случае файлы пользовательской базы данных онлайн-игры, но не важно). Гораздо проще с ними работать когда они в правильном порядке
- 1.jpg
- 2.jpg
- 3.jpg
- 20.jpg
- 30.jpg
Самое смешное что эта возможность была в MC изначально, но по чьей-то глупой просьбе её выпилили. Выпилили, как водится, не совсем кошерно:
#if 0 1350 /* case insensitive sort files in "a1 a2 a10" order */ 1351 result.create_key_for_filename = str_utf8_create_key_for_filename; 1352 #else 1353 /* case insensitive sort files in "a1 a10 a2" order */ 1354 result.create_key_for_filename = str_utf8_create_key; 1355 #endif
Я не сильна в программировании на C, но думается мне что это условие if(false){ do somehting} =)
Ну что ж, я скачала сырцы MC отсюда - Sources of Midnight commander - http://ftp.midnight-commander.org/
и в файле mc-4.8.12/lib/strutil/strutilutf8.c нашла уже более годный кусок:
#ifdef MC__USE_STR_UTF8_CREATE_KEY_FOR_FILENAME /* case insensitive sort files in "a1 a2 a10" order */ result.create_key_for_filename = str_utf8_create_key_for_filename; #else /* case insensitive sort files in "a1 a10 a2" order */ result.create_key_for_filename = str_utf8_create_key; #endif
Поискав имя переменной MC__USE_STR_UTF8_CREATE_KEY_FOR_FILENAME и в сырцах поняла что она нигде не используется. Но при компиляции используется конфиг, так что я просто добавила это туда:
In the file config.h I've just added:
#define MC__USE_STR_UTF8_CREATE_KEY_FOR_FILENAME 1
Для компиляции мне пришлось установить пакеты
yum install glibc2-devel slang-devel
далее
./configure make make install
В Fedora пакет установится в /usr/local/bin/mc
Чтобы файлы сортировались как положено - вы должны выключить флажок Учёт регистра в настройках сортировки.
For using good numeric sorting you should uncheck "Use sensitive sort" (so it became insensitive) in the sort dialog.
Всем чмоки!
P.S. Кто там пытался блог хакать - отпишись в гостевую, интересно ж. Ругаться не буду. Я целый час следила за твоими попытками =)
Комментарии: