dlinyj: (Default)
[personal profile] dlinyj
Уж не буду говорить, что винда меня банально бесит тем, что когда она загрузилась тупо до ввода логина и пароля чем-то жутко хрустит винтом, будто терабайты туды-сюды копирует (и судя по всему так и есть, что копирует - не ясно). Включил так комп, ну просто чтобы загрузился, и он херачит винтом (да, я пользуюсь обычными блинами). С линуксом такого нет. Да и шустрее он несоразмерно.

Но столкнулся с весьма неприятной багой, да ещё и на сервере, да ещё и не имея доступа к нему, но бага касается меня (сорян, ни слова больше, ни сантиметра... гм). Короче говоря, столкнулся с тем что у винды есть ограничение на длинну пути. Если вы создадите папку в 256 символов, то внутри этой папки вы уже создать файл или папку не сможете, без специальных танцев с бубном.

Это боль и унижение из коробки. И подстава подстав на удалённых не обслуживаемых серверах.

Date: 2019-12-18 02:33 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
Говорят, если использовать FAR или robocopy, можно это ограничение обойти. Так как оно существует не на уровне файловой системы, а на уровне WinAPI, а там есть уже давно возможность работать с unicode-путями. На уровне NTFS длина пути 32к.

Как продвинутый вариант можешь работать с симлинками (предполагается NTFS на сервере, естественно). Хоть и костыли, но работающие.

ПС. Но если у тебя длина не пути, а имени папки 256 символов, то ссзб. Нахера? :)
Edited Date: 2019-12-18 02:34 pm (UTC)

Date: 2019-12-18 03:47 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Это отработка скрипта на сервере. К сожалению не имею никакого доступа к нему, имею лишь результаты и рву волосы на попе.

Date: 2019-12-18 07:34 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
а скрипт твой? наверное, надо переделывать :)

Date: 2019-12-18 08:57 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Он не мой, но имеет отношение ко мне. Пускай хозяева переделывают.

Date: 2019-12-18 02:48 pm (UTC)
From: [identity profile] kosenko-danila.livejournal.com
Хм, а если сначала создать внутри, а потом переименовать на длинное имя, значит, никакой хакер туда никакой файл не запишет? :)

Date: 2019-12-18 03:48 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
и не прочитает. Но не даст сделать

Date: 2019-12-18 04:52 pm (UTC)
From: [identity profile] kosenko-danila.livejournal.com
Готовая айтишная страшная байка про файл на сервере, который невозможно прочитать никому, даже админу. Можно так секреты какие-нибудь прятать, создать кучу папок подобных с балластом внутри. И в одной из них прятать инфу. Пусть хакеры мучаются, переименовывая папки и подпапки, чтобы можно было поискать эту инфу по ключевым в файлах. :)
Edited Date: 2019-12-18 04:52 pm (UTC)

Date: 2019-12-18 04:54 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Хакерам эти файлы нафиг не впились. Как правило сервак нужен для ботнета.

Date: 2019-12-19 06:52 am (UTC)
From: [identity profile] e-pipe.livejournal.com
Раньше ещё была шутка (не знаю, побагили или нет) - при загрузке мастдайки пока она не отыграет полностью свой стартовый блямк, она ничего не может делать. Ради шутки вместо блямка ставили вавку какой-нибудь некороткой музыки - "Yellow submarime", или "Stairway to heaven"...
Edited Date: 2019-12-19 06:53 am (UTC)

Date: 2019-12-19 06:55 am (UTC)
From: [identity profile] kosenko-danila.livejournal.com
Представляю себе музыкальный файл-заподлянку "1440 минут тишины". :)
Кстати, о таком баге не слышал раньше.
Edited Date: 2019-12-19 06:55 am (UTC)

Date: 2019-12-21 07:37 am (UTC)
From: [identity profile] alexfilonov.livejournal.com
Не шутка. Пофиксили только в вин98 SE. Из под доса(вход по F8) можно было запустить злобный доснавигатор, заменить внаглую вавку и радоваться обломам жалкого узверя.

Date: 2019-12-21 09:45 am (UTC)
From: [identity profile] e-pipe.livejournal.com
– Все-таки мне непонятно, – сказал я, – какое значение имел патефон, и почему безобидная песенка сделала господина Денна таким послушным, и откуда вы узнали его имя?

Но Пронин не рассердился. Он только поглядел на Виктора и насмешливо хмыкнул.

– Тьфу ты, черт! – воскликнул он. – Самого главного, оказывается, мы тебе так и не сказали. – Он указал Виктору на меня. – Помнишь, я заставлял тебя изучать языки? Ты видишь перед собой воплощенную беспомощность. Мы в самом начале раскрыли секрет, а он спрашивает, в чем дело! – Пронин ласково потрепал меня по руке. – Прости, пожалуйста, я совсем упустил из виду, что ты не знаешь английского языка. Я даже не представляю, как ты следил за рассказом Виктора, не зная самой существенной детали… – Он повел рукой, прося Виктора еще раз подойти к патефону. – Будь другом, заведи эту пластинку еще, хотя бы с середины…

– Э-эх! – только вздохнул Виктор.

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

– Вот-вот! – воскликнул Пронин. – Слушай!

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

– Do you hear me, mister Denn? That’s me. I am glad to greet you. All the orders of the possessor of this record must be fulfilled, – повторил Про­нин только что услышанные слова и тут же их перевел: – «Вы слышите меня, господин Денн? Это говорю я. Рад вас приветствовать. Все приказания владельца этой пластинки должны быть исполнены».

Date: 2019-12-21 10:21 am (UTC)
From: [identity profile] alexfilonov.livejournal.com
Ну можно было и так, да!

Date: 2019-12-18 03:22 pm (UTC)
From: [identity profile] juunitaki.livejournal.com
touch `pwgen -s 1024 | head -n 1`
touch: невозможно выполнить touch для 'wH7p83Nnume4ZJGbiOqFfIQOUcXO8ojaoAr1rhkyqfLn254il8fdwLV2JZ5jahs7ZQf3ScJD2Jy60wIXkPZqTCWNDKMRJr997FmnhLHk0R4584owtWJ0LO7csnRHhUlKN2rfpjdtoQWoRDN1XuZ2uzhTyhFNHQZOfxOOPVFUne3rmNcVh2xAv6tBcxN2ac279LrVqEzsfReuiRF1CTxJOEFm2ANvbdtwBUZvnhrVy1ohZEPJ5GWN1zysufu4kHfohmT600F93NsyZfbMMK6X1PU0yZ2RZWJRM9H7GH8zEEGPuKDJ5H1B19RySpNScf3Fm1axdAS0oIEaLPPdpq4PN9FBqLW9VX6UN1NyVAcMikQXMHAvyhiPUx4Nc7rxhK10RYj0sVJbnHjiKWqvDtvockFTx0bN5OnoqlGihTPZmSF6AMNvEFJzhc6DPDbOsNWIvFxswstQ9DEORwqKDPaQQaxiFGNvtHcgzYs1e7Rifh0TKEgBA8S1GBaIrEbJ9U20pxGbICvVa7v6h22C42N7c6pI7xbBdydFTvJINFEjxV1iQGjAB5qWDDzYWpnxht76MkW2TcSaFAA6jJFAYGA46GKlLGpcvStchLlg7nKxs2pbMycDU5vwZRJkLgAW9HgIxnYOwC4ff1g82DKyUZxtQptBbRZJ2KaqqLeD2CeNvn5pi1SYLKMRj2Tp2anjmVSJJV2pkpCwaY0zWY1aTWRRCxl4ONsKBvNS3eU5lDVzeGCIOK4tzgp0Fxq9uyzTa9nFm0cEQ6xF8GHRv7hEjSjEAAbO4xvUaWPSZ10cdfZeKkefU8DBtGbeBqbBh5tSpYHBuFPXIa2gfG4i1mQdZl2cPB5Cil8WHsr5GPn0BTaDlSBYC7lMNfT6ZKTjseoL7uUr1rQfHgTyHOMDXyhvd5RW0mUlGyAc5eMKHvyQtjhGLIYi6dXiJ7I9EagsDC4jkfF1mqLvp5Ud0J4rujWIvJu3JvCgA9EeE7WltiDAt7tpzAzVHuIo8plmsVEhD9yxOGT5': Слишком длинное имя файла

Date: 2019-12-18 03:48 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
какая файловая система?

Date: 2019-12-18 03:33 pm (UTC)
From: [identity profile] free-artp.livejournal.com

subst.exe - ваше фсё
А ограничение в 256  - на уровне приложений. Например, Адоба-читалка не открывает, а через хром - открывает.

Date: 2019-12-18 03:49 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Ну вот столкнулся.

Date: 2019-12-18 07:40 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
mklink /d еще
читал, что в powershell этой проблемы уже нет, надо скрипты туда мигрировать...

Date: 2019-12-18 03:40 pm (UTC)
From: [identity profile] ivanstor.livejournal.com
У Linux с этим ещё хуже, ограничение на уровне 256 байт (не символов), причем на уровне ядра. Порой с этим сталкиваюсь, распаковывая созданные в виндах архивы или читая под линуксом NTFS диски

Date: 2019-12-18 03:49 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
А... NTFS не имеет же драйвера на уровне ядра.

Date: 2019-12-18 10:06 pm (UTC)
From: [identity profile] ivanstor.livejournal.com
Это здесь не причем. С родными ФС у линукс та же проблема.

Date: 2019-12-18 04:05 pm (UTC)
From: [identity profile] mc6312.livejournal.com
1. Про UNC-пути тут уже написали... В случае сервера путь вида \\servername\sharename\path\filename - тоже не получается >256 символов?
2. В Linux на самом деле всё не совсем весело: у каждой файловой системы свои ограничения на длину пути, причём, например, ext4 про кодировки не знает ничего, хранит имя в том виде, в каком дали, а лимит длины имени 255 байт.
Более того, в Linux VFS (файловой подсистеме ядра) по умолчанию всобачено значение в 255 _байт_ максимальной длины имени файла. Именно байт, не символов UTF-16, как в NTFS. Т.е. пытаясь создать длинный путь с именем в utf-8, можно очень неприятно удивиться. На полный путь, правда, аж 4096 дали (https://github.com/torvalds/linux/blob/master/include/uapi/linux/limits.h).

Date: 2019-12-18 05:52 pm (UTC)
From: [identity profile] mbr.livejournal.com
> у каждой файловой системы свои ограничения на длину пути

длину пути или все-таки имени файла? А длина пути в limits.h задается и там уже давно 4096.

Я реально не очень понимаю, зачем нужен файл с именем в даже 100 символов. А вот гуляя по вложенным каталогам, да еще с симлинками 256 символов легко пройти.

Date: 2019-12-18 07:36 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
а если по уму наделать симлинков, можно эти пути и понаукорачивать...

Date: 2019-12-18 07:46 pm (UTC)
From: [identity profile] mbr.livejournal.com
а если не по уму, можно и рекурсию сделать :)

Date: 2019-12-18 07:49 pm (UTC)
From: [identity profile] mc6312.livejournal.com
Я ж прямо написал - "лимит длины имени".
100 символов utf-8 может оказаться 400ми байтами.
А 255 байт - всего-то 63 символа, если не повезёт. Уже не очень много.
И вот хоть расстреливайте, а отсутствие информации о кодировке имён файлов в ФС (я в данном случае об ext4) - на мой взгляд, грубый косяк дизайна, допущенный очешуевшими бледнолицыми.

Date: 2019-12-18 07:52 pm (UTC)
From: [identity profile] mbr.livejournal.com
ну так ТС-то про MAX_PATH ;)

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 07:00 pm
Powered by Dreamwidth Studios