drBatty писал(а): ↑09.06.2012 21:28
это называется "доведение до абсурда". В таком случае tar тоже не должна ничего сжимать/разжимать, а исключительно паковать. ИМХО вполне логично хранить текстовые файлы в сжатом виде, и я не вижу никаких причин, почему я этого не могу делать? Но если я некоторые файлы храню в сжатом виде, то почему-же я не могу их просматривать имеющейся программой просмотра? "do it well" тут не работает.
Чтобы tar что‐то сжала/разжала надо ей это явно сказать. less делает это без указаний, что не нужно. Может вы создали новый язык программирования и назвали его Gz с соответствующим расширением файла и теперь хотите просмотреть с помощью less исходный код на нём?
drBatty писал(а): ↑09.06.2012 21:28
IRL довольно многие программы "догадываются", и в этом нет ничего плохого. Ну вот как пример - gpg. Или всеми любимый vim, который не только распаковывает, но ещё и у многих кодировку подбирает, а у иных даже chmod +x на файлах с sha-bang'ом делает (это уже ИМХО перебор).
При сохранении новых файлов — нормально. Иначе зачем вы вообще его там писали?
Vim распаковкой, кстати, не занимается — работу делают его дополнения.
drBatty писал(а): ↑09.06.2012 21:28
насколько я помню, она читает поток какой-то из функций вроде fgets(3), причём там внутренняя буферизация, но читает таки построчно, но ессно не прямо из файла, а из внутреннего буфера. Впрочем, за 5 лет это могло изменится, да и я могу ошибаться, и читает она построчно лишь при нумерации строк. Посмотрите, если вам не лениво...
Я смотрел исключительно с помощью strace. Читает она блоками независимо от того, есть нумерация или нет (впрочем, я слабо представляю себе обратное). Пишет построчно, если есть -n. Из исходников ясно, что используются обёртки над read и write.