Сведения о вопросе

Sadijon

04:58, 1st August, 2020

Теги

java   windows   unix   file    

Различия между файлами unix и windows

Просмотров: 550   Ответов: 6

Правильно ли я предполагаю, что единственная разница между "windows files" и "unix files" - это прорыв линии?

У нас есть система, которая была перемещена с машины windows на машину unix, и у нее возникли проблемы с форматом.

Мне нужно автоматизировать перевод между unix/windows, прежде чем файлы будут доставлены в систему в нашем "transportsystem". Вероятно, мне понадобится что-то, чтобы определить текущий формат и что-то, чтобы преобразовать его в другой формат. Если это просто новая строка, то это большая разница, тогда я рассматриваю просто чтение файлов с java.io. Насколько я знаю, они способны справиться и с тем, и с другим с помощью readLine. А затем просто напишите каждую строчку обратно с помощью

while (line = readline)
    print(line + NewlineInOtherFormat)
....

Резюме:

samjudson :

Это только разница в текстовых файлах, где UNIX использует однострочный канал (LF) для обозначения новой строки, Windows использует возврат каретки/линейный канал (CRLF), а Mac использует только CR.

на что Себжир подробно отвечает:

OS X использует LF, так же как UNIX - MacOS 9 и ниже использовали CR, хотя

Mo

Кроме того, может существовать разница в кодировке символов для национальных символов. Там нет "unix-encoding", но многие linux-варианты используют UTF-8 в качестве кодировки по умолчанию. Mac OS (который также является unix) использует свою собственную кодировку (macroman). Я не уверен, что такое кодировка по умолчанию windows.

McDowell

В дополнение к различиям в новой строке, метка порядка байтов может вызвать проблемы, если файлы обрабатываются как Unicode на Windows.

Cheekysoft

Однако другой набор проблем, с которыми вы можете столкнуться, может быть связан с кодировкой символов single/multi-byte. Если вы видите странные неожиданные символы (не в end-of-line), то это может быть причиной. Особенно если вы видите квадратные поля, вопросительные знаки, перевернутые вопросительные знаки, дополнительные символы или неожиданные акцентированные символы.

Сади

На unix файлы, которые начинаются с a . они скрыты. На windows это флаг файловой системы, к которому у вас, вероятно, нет легкого доступа. Это может привести к тому, что файлы, которые должны быть скрыты, теперь становятся видимыми на клиентских компьютерах.

Права доступа к файлам различаются между ними. Вы, вероятно, обнаружите, когда вы копируете файлы в систему unix, что файлы теперь принадлежат Пользователю, который сделал копирование и имеет ограниченные права. Вам нужно будет использовать chown/chmod, чтобы убедиться, что правильные пользователи имеют к ним доступ.



  Сведения об ответе

SILA

15:35, 10th August, 2020

Это только разница в текстовых файлах, где UNIX использует однострочный канал (LF) для обозначения новой строки, Windows использует возврат каретки/линейный канал (CRLF), а Mac использует только CR.

Двоичные файлы не должно быть никакой разницы (т. е. JPEG на машине windows будет байт за байтом таким же, как и тот же JPEG на коробке unix.)


  Сведения об ответе

ASER

03:59, 7th August, 2020

Кроме того, может существовать разница в кодировке символов для национальных символов. Там нет "unix-encoding", но многие linux-варианты используют UTF-8 в качестве кодировки по умолчанию. Mac OS (который также является unix) использует свою собственную кодировку (macroman). Я не уверен, что такое кодировка по умолчанию windows.

Но это может быть еще одним источником неприятностей (помимо различных лайнбрейков).

Какие у вас проблемы? Связанные с linebreak проблемы могут быть легко исправлены с помощью программ dos2unix или unix2dos на unix-машине


  Сведения об ответе

ITSME

14:09, 8th August, 2020

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

(Конечно, есть много других вещей, которые делают файлы unix и windows разными, но я не думаю, что вас сейчас интересуют эти другие различия.)


  Сведения об ответе

ASER

17:49, 18th August, 2020

В дополнение к приведенным ответам, вы можете найти проблемы с различными файловыми системами:

  • На unix файлы, которые начинаются с a . они скрыты. На windows это флаг файловой системы, к которому у вас, вероятно, нет легкого доступа. Это может привести к тому, что файлы, которые должны быть скрыты, теперь становятся видимыми на клиентских компьютерах.

  • Права доступа к файлам различаются между ними. Вы, вероятно, обнаружите, когда вы копируете файлы в систему unix, что файлы теперь принадлежат Пользователю, который сделал копирование и имеет ограниченные права. Вам нужно будет использовать chown/chmod , чтобы убедиться, что правильные пользователи имеют к ним доступ.


  Сведения об ответе

DINO

03:18, 9th August, 2020

В дополнение к различиям в новой строке, метка порядка байтов может вызвать проблемы, если файлы обрабатываются как Unicode на Windows.


  Сведения об ответе

SSESION

20:29, 6th August, 2020

Как предполагает pauldoo, такие инструменты, как dos2unix, могут быть очень полезны. Обратите внимание , что они могут быть в вашей системе linux/unix в качестве fromdos или tofrodos, или, возможно, даже в качестве общего набора инструментов recode .

Однако другой набор проблем, с которыми вы можете столкнуться, может быть связан с кодировкой символов single/multi-byte. Если вы видите странные неожиданные символы (не в end-of-line), то это может быть причиной. Особенно если вы видите квадратные поля, вопросительные знаки, перевернутые вопросительные знаки, дополнительные символы или неожиданные акцентированные символы.

Запуск команды locale в поле *nix покажет вам, что такое система locale. Если это отличается от кодировки, используемой в текстовых файлах, которые были переданы с машины windows, то это иногда может вызвать проблемы, в зависимости от использования этих файлов. Вы можете использовать очень мощную команду перекодирования , чтобы попытаться конвертировать между различными кодировками, а также любые проблемы с окончанием строки. recode-l покажет вам все форматы и кодировки, которые инструмент может конвертировать между ними. Скорее всего, это будет длинный список VERY.

При записи в файлы или чтении из файлов (которые вы контролируете) часто стоит указать кодировку для использования, поскольку большинство методов Java позволяют это. Однако, также гарантируя, что система locale соответствует, можно сэкономить много боли.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться