forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #31  
Старый 09.03.2018, 07:41
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Alex Korchmar написал(а) к Eugene Grosbein в Mar 18 06:21:03 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:

EG> Это главный вопрос. Что говорит file на распакованный tar?
говорю же - мне сперва бы разобраться с тем, что тут на диске, а тар
потрошить как-нибудь потом (возможно еще и не поздно просто заново
скопировать первоисточник)

но судя по жалобам gnu tar - это обычный продукт bsd tar, с chily-расширениями

возиться с ним сейчас особо и негде, там под 100G, а место у меня ограничено.

> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #32  
Старый 09.03.2018, 07:41
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Alex Korchmar написал(а) к Andrew Kant в Mar 18 06:23:34 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Andrew Kant <Andrew.Kant@p1.f83.n469.z2.fidonet.org> wrote:

AK> если есть исходный тар, то тебе не нужен find, сделай tar --list
ок, давай паттерн для list. Задача, если кто не понял, удалить только
кривые русские, а не все подряд.

А я и набрать-то это не могу - нет у меня на клавиатуре таких клякс.


> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #33  
Старый 09.03.2018, 11:02
Andrew Kant
Guest
 
Сообщений: n/a
По умолчанию tar: Can't translate pathname to UTF-8

Andrew Kant написал(а) к Alex Korchmar в Mar 18 08:45:24 по местному времени:

Нello Alex!

Friday March 09 2018 06:23, Alex Korchmar wrote to Andrew Kant:

AK> From: Alex Korchmar <noreply@linux.e-moe.ru>

AK> Andrew Kant <Andrew.Kant@p1.f83.n469.z2.fidonet.org> wrote:

AK>> если есть исходный тар, то тебе не нужен find, сделай tar --list
AK> ок, давай паттерн для list. Задача, если кто не понял, удалить только
AK> кривые русские, а не все подряд.

!~ /^[a-zA-Z0-9\/._-]*$/ попробуй для начала, потом улучшай. Может быть имеет смысл смотреть не на !~, а на =~, чтоб уточнить кого не надо удалять. Я-то не вижу твоих данных, не могу оценть правильность/полноту предложенного шаблона.


Good bye!
Andrew

--- GoldED+/W32 1.1.4.7
Ответить с цитированием
  #34  
Старый 09.03.2018, 12:31
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Eugene Grosbein написал(а) к Alex Korchmar в Mar 18 15:02:21 по местному времени:

09 марта 2018, пятница, в 06:21 NOVT, Alex Korchmar написал(а):

EG>> Это главный вопрос. Что говорит file на распакованный tar?
AK> говорю же - мне сперва бы разобраться с тем, что тут на диске

Для этого очень полезно знать, что за вариант tar-формата был распакован.

Eugene
--- slrn/1.0.2 (FreeBSD)
Ответить с цитированием
  #35  
Старый 13.03.2018, 14:01
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Alex Korchmar написал(а) к Andrew Kant в Mar 18 12:39:45 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Andrew Kant <Andrew.Kant@p1.f83.n469.z2.fidonet.org> wrote:

AK> !~ /^[a-zA-Z0-9\/._-]*$/ попробуй для начала, потом улучшай.
там 40G
Я категорически не желаю проверять, что попало, а что не попало в паттерн.

Нет ли других идей?

AK> смысл смотреть не на !~, а на =~, чтоб уточнить кого не надо удалять.
имеет смысл придумать паттерн/идею как удалить все файлы, содержащие херню
в имени (а не как отфильтровать остальные - потому что очевидно что что-нибудь
не предусмотришь.

Что у нас умеет паттерны с hex/octal codes и не занимается идиотскими
перекодировками и проверками? Я совершенно точно уверен, что валидных
файлов с именами, содержащими символы >200 там нет.

AK> вижу твоих данных, не могу оценть правильность/полноту предложенного
очевидно, это вообще плохой подход.
нам заведомо известно, какие файлы надо точно удалить. Мы можем нечаянно
пропустить кого-то из них - это мусор на диске, можно найти потом или забить,
если его будет немного.
Вопрос только в том, как с помощью макаками писанных инструментов найти
их на диске.

> Alex
P.S. вопрос распаковки тара снят окончательно - первоисточник жив.
там, кстати, оказался utf8 на диске, C - в локали ;-)
Но это freebsd6.2, у нее нет лишнего "ума".



--- ifmail v.2.15dev5.4
Ответить с цитированием
  #36  
Старый 13.03.2018, 15:53
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Eugene Grosbein написал(а) к Alex Korchmar в Mar 18 18:30:02 по местному времени:

13 марта 2018, вторник, в 12:39 NOVT, Alex Korchmar написал(а):

AK> Что у нас умеет паттерны с hex/octal codes и не занимается идиотскими
AK> перекодировками и проверками? Я совершенно точно уверен, что валидных
AK> файлов с именами, содержащими символы >200 там нет.

perl, конечно. Поиск файлов с символами в диапазоне от 0xc8 до 0xff:

find . -type f -print0 | xargs -0 perl -e 'print (join "\n", grep /[\xc8-\xff]/, @ARGV), "\n"'

AK> P.S. вопрос распаковки тара снят окончательно - первоисточник жив.
AK> там, кстати, оказался utf8 на диске, C - в локали ;-)
AK> Но это freebsd6.2, у нее нет лишнего "ума".

Что там в локали, совершенно неважно, так как в 6.2 был gnu tar,
который по дефолту создаёт формат ustar, в котором кодировка не указывается,
а имена с файловой системы сохраняются "как есть".

Я даже не представляю, что нужно сделать, чтобы такой tar не распаковался
"как есть" под нынешней FreeBSD, потому как и bsdtar, и gtar разворачивают
такое без каких-либо попыток перекодировки и получается нормальный UTF-8
в именах на файловой системе. И неважно, какая локаль при этом была
при распаковке.

Eugene
--- slrn/1.0.2 (FreeBSD)
Ответить с цитированием
  #37  
Старый 14.03.2018, 19:10
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Alex Korchmar написал(а) к Eugene Grosbein в Mar 18 17:52:45 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:

EG> perl, конечно. Поиск файлов с символами в диапазоне от 0xc8 до 0xff:
надо же, хоть какая от него польза в системе
EG> find . -type f -print0 | xargs -0 perl -e 'print (join "\n", grep
EG> /[\xc8-\xff]/, @ARGV), "\n"'
а если я это xargs rm скормлю - оно сработает, или опять начнет причудливо
их интерпретировать?

EG> Что там в локали, совершенно неважно, так как в 6.2 был gnu tar,
и откуда тогда schily exts в этом таре?

> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #38  
Старый 14.03.2018, 19:41
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Eugene Grosbein написал(а) к Alex Korchmar в Mar 18 22:13:25 по местному времени:

14 марта 2018, среда, в 17:52 NOVT, Alex Korchmar написал(а):

EG>> find . -type f -print0 | xargs -0 perl -e 'print (join "\n", grep
EG>> /[\xc8-\xff]/, @ARGV), "\n"'
AK> а если я это xargs rm скормлю - оно сработает, или опять начнет причудливо
AK> их интерпретировать?

Сработает, только я бы вместо print и xargs rm сделал
perl -e 'system "rm", grep ...'

EG>> Что там в локали, совершенно неважно, так как в 6.2 был gnu tar,
AK> и откуда тогда schily exts в этом таре?

Не понял вопроса. Что за schily exts?
И я тебя спрашивал, если ты забыл: что говорит file на распакованный tar?

И сделай в зависимости от вывода file один из двух dd как в примере ниже:

$ tar -cf posix.tar пример # koi8-r
$ file posix.tar
posix.tar: POSIX tar archive

$ tar --format gnutar -cf gnutar.tar пример
$ file gnutar.tar
gnutar.tar: POSIX tar archive (GNU)

$ dd bs=6 count=1 if=gnutar.tar 2>/dev/null
пример
$ dd if=posix.tar skip=1 2>/dev/null | head -1 | iconv -f utf-8 -t koi8-r
21 path=пример

Eugene
--
For the Colonel's Lady an' Judy O'Grady
Are sisters under their skins!
--- slrn/1.0.2 (FreeBSD)
Ответить с цитированием
  #39  
Старый 14.03.2018, 22:31
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Alex Korchmar написал(а) к Eugene Grosbein в Mar 18 21:06:51 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:

EG> Сработает, только я бы вместо print и xargs rm сделал
EG> perl -e 'system "rm", grep ...'
а оно про длину командной строки-то знает?

AK>> и откуда тогда schily exts в этом таре?
EG> Не понял вопроса. Что за schily exts?
google for it? Какое-то г-но, добавляемое непойми зачем фрибсдшным таром во все
архивы, чтобы при распаковке где-то еще не увидеть реальных ошибок за ворохом
сообщений что оно не знает, что с этим делать.

EG> И я тебя спрашивал, если ты забыл: что говорит file на распакованный tar?
мне негде его распаковывать. линуксный говорит что /dev/stdin: POSIX tar archive
но он соврет, не проверит.

EG> И сделай в зависимости от вывода file один из двух dd как в примере ниже:
там, повторяю, десятки гигабайт. русские имена начинаются далеко не с первого.
Но в общем, я попробовал твой перловый скрипт использовать на вход тару.
Локаль utf8. На выходе (уже просто в tar -cf ) - бнопня. В смысле - те же
непечатаемые символы, ни разу не utf.

zip у нас, хотя бы, не имеет "интеллекта"?


> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #40  
Старый 15.03.2018, 07:41
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: tar: Can't translate pathname to UTF-8

Eugene Grosbein написал(а) к Alex Korchmar в Mar 18 10:23:43 по местному времени:

14 марта 2018, среда, в 21:06 NOVT, Alex Korchmar написал(а):

EG>> Сработает, только я бы вместо print и xargs rm сделал
EG>> perl -e 'system "rm", grep ...'
AK> а оно про длину командной строки-то знает?

Оно не знает, но ему и не надо, так как оно уже после xargs -0
запущено будет, который знает, а grep список может только уменьшить.

AK>>> и откуда тогда schily exts в этом таре?
EG>> Не понял вопроса. Что за schily exts?
AK> google for it? Какое-то г-но, добавляемое непойми зачем фрибсдшным таром во все

Не было в 6.2 этого тара.

EG>> И я тебя спрашивал, если ты забыл: что говорит file на распакованный tar?
AK> мне негде его распаковывать. линуксный говорит что /dev/stdin: POSIX tar
AK> archive
AK> но он соврет, не проверит.

file у всех один и тот же, только версии могут быть разные.
Но мне кажется, ты недоговариваешь что-то существенное -
откуда в картинке вообще линукс?

EG>> И сделай в зависимости от вывода file один из двух dd как в примере ниже:
AK> там, повторяю, десятки гигабайт. русские имена начинаются далеко не с первого.
AK> Но в общем, я попробовал твой перловый скрипт использовать на вход тару.
AK> Локаль utf8. На выходе (уже просто в tar -cf ) - бнопня. В смысле - те же
AK> непечатаемые символы, ни разу не utf.

Ты почти наверняка что-то делаешь не так. Показывай, как именно
ты запускал перловый скрипт в связке с tar, со всеми ключиками
последнего и не забудь сказать, как делал исходные файлы.

Eugene
--
Choose no career
--- slrn/1.0.2 (FreeBSD)
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 12:23. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot