LINUX.ORG.RU

Кириллица


0

0

Товарищи! Подскажите, как переконвертировать это:

home/domain/shares/\320\236\320\261\321\211\320\265\321\201\321\202\320\262\320\265\320\275\320\275\320\260\321\217

в это:

/home/domain/shares/Общественная

(Оно одно и тоже)

Указать верную кодировку при монтировании тома?

hibou ★★★★★
()

А... или может сохранял какой-либо программой, которая не поддерживает юникод?

hibou ★★★★★
()

1) Использовать программы с поддержкой юникода.

2) Найти эквиваленты для всех русских букв и заменять при помощи sed. Очевидно, эквивалентами будут последовательности вида \nnn\nnn

GotF ★★★★★
()
Ответ на: комментарий от GotF

Еще вот мысль есть такая - если этот смонтированный ресурс вдруг доступен не только на этой машине, то как его переименование скажется на других машинах?

hibou ★★★★★
()
Ответ на: комментарий от hibou

Я так понимаю, зависит от кодировки на этих машинах, но с шарами особо дела не имел, если честно. Вообще, когда есть неясности с кодировками, можно прибегнуть к транслиту и ascii...

GotF ★★★★★
()

Ммм, попробуй поскармливать этот католожек convmv в тестовом режиме.

tux2002
()

Такое выводят getfacl getfattr rsync

Такое выводят getfacl getfattr rsync Acl используются для разграничения доступа в общественном файлохранилище. Транслит здесь не вариант. rsync для бэкапов. Удивительно что rsync, с ее возрастом не поддерживает юникод. Может что-то можно сделать?

Аналогов getfacl getfattr я не знаю, для rsync в данном случае только star, но не хочется.

Поскольку все что мне надо это видеть у какого файла какие расширенные атрибуты и смотреть отчеты бэкапа, посетила мысль о конвертации логов он зэ флай.

Посмотрю convmv, спасибо.

alikthename
() автор топика
aitap@deb-notebook:~$ printf 'home/domain/shares/\320\236\320\261\321\211\320\265\321\201\321\202\320\262\320\265\320\275\320\275\320\260\321\217'
home/domain/shares/Общественнаяaitap@deb-notebook:~$ 

Но можно ли это назвать решением?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Огромное спасибо

Такая конструкция работает: getfattr * | xargs -0 printf

Но если задать рекурсивно getfattr -R /Директория | xargs -0 printf

xargs ругается: «xargs: строка аргументов слишком велика»

Может существует поискустнее конструкция?

alikthename
() автор топика
Ответ на: комментарий от alikthename

Как-то так

find /path/to/files/ -type f |while read i; do echo this is $i; done

Что там вставлять в качестве действия - на свой выбор.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Если внутри вставлять | то его может понадобиться экранировать.

sin_a ★★★★★
()
Ответ на: Огромное спасибо от alikthename

getfattr ведь не разделяет свой вывод символами '0', и в вашей конструкции весь вывод передаётся printf как один аргумент. Тогда места и не хватает.

Пока рождается такая конструкция:

getfattr -R | sed 's|\\|\\\\|g' | xargs -n 1 -I '{}' printf '{}\n'

или find и использовать у него опцию 'exec'.

mky ★★★★★
()
Ответ на: комментарий от mky

Это то, что я и искал

С find не очень получается пока, надо про петли больше почитать. А вобщем, всем спасибо очень много. Чирс

alikthename
() автор топика
Ответ на: комментарий от AITap

Как я понял, топикстартеру хочется получить не просто имена файлов в читаемом виде, а именно имена плюс атрибуты и тогда с find получается запуск 2-х команд на каждый файл:

find /path -exec printf '{}\n' ';' -exec getfacl --omit-header '{}' ';'

Хотя мой вариант был ещё хуже, там printf вызывался для каждой строки, а их минимум 6 штук на файл (для getfacl).

mky ★★★★★
()
Ответ на: комментарий от mky

>Хотя мой вариант был ещё хуже, там printf вызывался для каждой строки, а их минимум 6 штук на файл (для getfacl).

Но зато оставляет header в котором owner и group.

alikthename
() автор топика
Ответ на: комментарий от alikthename

Дак это можно и с помощью find получить и даже в том же виде, что и getfacl:

find /path -exec printf '# file: {}\n' ';' -printf '# owner: %u\n# group: %g\n' -exec getfacl --omit-header '{}' ';'

Если это кажется слишком длинным, то можно засунуть это в скриптик.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.