Чем не является операционная система windows unix dos winrar

Обновлено: 21.11.2024

В этом руководстве описывается использование инструментов командной строки WinRAR (v5.01) для сжатия и распаковки файлов в каталоге, а также их использование в пакетных файлах (для IZArc и 7-zip см. этот пост). Это руководство является продолжением предыдущего сообщения «Автоматизация задач архивирования с помощью интерфейса командной строки», в котором объяснялось использование инструментов командной строки для двух бесплатных утилит сжатия, IZArc и 7-Zip. Информация в этом руководстве была проверена на ПК с Windows под управлением Vista.

WinRAR — это популярный и мощный менеджер архивов, который можно использовать из командной строки или с языками сценариев, такими как пакетные файлы. Он включает два инструмента командной строки, rar.exe и unrar.exe, где rar.exe сжимает, а unrar.exe< /em> распаковывает файлы. Оба находятся в папке «C:\Program Files\WinRAR» в устанавливаемой версии. Хотя WinRAR является условно-бесплатным, его можно использовать на пробной основе в течение 40 дней. Использование инструментов командной строки WinRAR аналогично инструментам для IZArc и 7-Zip. Синтаксис использования исполняемых файлов WinRAR:

Чтобы получить список параметров для команд rar и unrar, откройте командное окно, перейдите в каталог WinRAR, введите rar или unrar и нажмите клавишу ввода (можно также использовать rar /? или rar help, используйте rar >rar_cmds.txt или unrar >unrar_cmds.txt, чтобы напечатать параметры команды в файл). Для получения более подробной информации откройте файл rar.txt в каталоге WinRAR, который содержит руководство пользователя консольной версии RAR.

Примеры сжатия папки:

создает архив yourfiles.rar и сжимает все файлы .txt в текущей папке

создает архив yourfiles.rar в папке C:\yourfolder и сжимает все файлы .txt в текущей папке и ее подпапках

создает архив yourfiles.rar в папке C:\yourfolder и сжимает все файлы .txt в другой папке и ее подпапках

создает архив yourfiles.rar и сжимает все файлы в текущей папке, но не включает вложенные папки (обратите внимание на отсутствие расширения; WinRAR будет использовать расширение по умолчанию .rar)

команда «а». Добавляет в архив

Переключатель «-r». Рекурсия подпапок

Примеры распаковки папки:

извлекает все файлы *.jpg из yourfile.rar в папку c:\extractfolder\ (требуется обратная косая черта в конце) и восстанавливает структуру папок

извлекает все файлы из каталога c:\yourfile.rar в текущую папку (структура папок игнорируется)

Команда «x». Извлечения с полными путями

Команда «e». Извлекает и игнорирует пути

Пример сжатия с использованием нескольких переключателей:

сжимает все новые или обновленные файлы из c:\test и его подпапок в e_archive.rar, удаляет файлы после их добавления в архив и исключает все файлы с расширением «bat»,

команда «a» добавляет в архив

Переключатель «-r». Рекурсия подпапок

Переключатель «-ep». Добавляет файлы в архив без указания пути. В архиве с одним и тем же именем может существовать несколько файлов.

Переключатель «-u». Эквивалент команды «u» в сочетании с командой «a». Добавляет новые файлы и обновляет старые версии уже находящихся в архиве файлов

Переключатель «-df». Удаляет файлы после их перемещения в архив

Переключатель «-x». Исключает указанные файлы из операции

Основные правила для WinRAR:

  • Если файлы или файлы списка не указаны, обрабатываются все файлы в текущей папке
  • При указании всех файлов в папке yourfolder или yourfolder\*.* эквивалентны
  • Структура папок автоматически сохраняется в архивах (но не извлекается автоматически)
  • WinRAR по умолчанию использует расширение .rar, но это можно изменить, указав расширение zip в имени архива.
  • Переключатели и команды не чувствительны к регистру и могут быть написаны как в верхнем, так и в нижнем регистре.

Еще один момент заключается в том, что WinRAR, по-видимому, не устанавливается в переменную среды пути Windows, поэтому ее необходимо указать либо в командной строке, либо установить на постоянной основе в настройках переменной среды, либо указать в пакетном файле (WinRAR v3. Для этого руководства использовалась версия 71.0.0, и это может быть не во всех версиях).

Чтобы установить переменную среды пути Windows временно в командной строке или в пакетном файле, используйте следующую команду:

Чтобы установить его постоянно в пути Windows для вашего ПК:

Пуск–>Панель управления–>Система–>Дополнительные параметры системы–>Вкладка «Дополнительно»–>Переменные среды–>Системные переменные–>Путь–>Редактировать. Добавьте путь ;C:\Program Files\WinRAR; до конца (не забывайте про одиночные точки с запятой в начале и в конце). Нажмите OK три раза.

Использование WinRAR в пакетных файлах:

Ниже приведены два примера пакетных файлов. Файл uncompress_rar.bat распаковывает все файлы .rar из папки и помещает извлеченные файлы в другой каталог.

Файл compress_rar_rev2.bat предоставляет следующие параметры сжатия для указанного пользователем каталога. Вариант 4 является наиболее часто используемой структурой и наиболее подходящим вариантом в большинстве случаев:

  1. Сжимать файлы в каталоге по отдельности (без подкаталогов)
  2. Сжимайте файлы в каталоге и подкаталогах по отдельности — без путей
  3. Сжать все файлы в каталоге в один архив (без подкаталогов)
  4. Сжать все файлы в каталоге и подкаталогах в один архив
  5. Сжать все файлы в каталоге и подкаталогах в один архив — без путей

Перед использованием любого из файлов обязательно измените расширения на .bat и отредактируйте пути к папкам по мере необходимости. Оба следующих пакетных файла временно задают переменную среды пути Windows для папки приложения WinRAR при выполнении.

Пакетная загрузка файлов:

Если вы обнаружили орфографическую ошибку, сообщите нам об этом, выделив этот текст и нажав Ctrl+Enter.

Перед извлечением данных из сжатого файла необходимо сначала определить тип сжатого файла. На IBM-совместимом компьютере под управлением Windows это можно определить по расширению файла. Большинство сжатых файлов имеют форматы .ZIP, .RAR, .GZ или .TGZ. Ниже приведены примеры того, как выглядят некоторые сжатые значки в Microsoft Windows.

После определения типа сжатого файла используйте соответствующую программу. Например, многие пользователи используют WinZip и Pkzip для извлечения файлов ZIP и WinRAR для извлечения файлов RAR в Windows. Однако мы рекомендуем пользователям Windows использовать 7-Zip, поскольку эта программа бесплатна, имеет открытый исходный код и поддерживает все основные форматы сжатых файлов.

7-Zip может открывать большинство наиболее распространенных типов сжатых файлов, включая .ZIP, .GZ, .TAR, .WIM и .XZ

Если вы используете Microsoft Windows XP, Vista, 7 или более позднюю версию, ваш компьютер уже должен иметь возможность распаковывать содержимое ZIP-файлов.

Если вы не хотите или не можете устанавливать программу на свой компьютер, вы также можете сжимать и распаковывать файлы онлайн.

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

Если вы извлекаете файл из сообщения электронной почты, сначала сохраните его в папку на компьютере.

В Microsoft Windows найдите сжатый файл и щелкните его правой кнопкой мыши. Должно открыться меню, в котором можно выбрать «Извлечь» или «Извлечь весь файл». Щелкните один из этих параметров, чтобы извлечь файл. Должно открыться окно с дополнительными параметрами, такими как место, куда вы хотите извлечь файлы. Если вы установили 7-Zip, нажмите 7-Zip, а затем распакуйте в «xxxx\», где xxxx — имя сжатого файла.

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

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

Распаковать файл в MS-DOS или командной строке Windows

Пользователям MS-DOS необходимо извлечь файлы с помощью командной строки. Мы рекомендуем пользователям использовать утилиты pkzip и pkunzip для сжатия и распаковки своих файлов. Дополнительная помощь и информация о том, как файлы могут быть извлечены из командной строки, доступны на нашей странице PKZIP и PKUNZIP.

(Лишние минусы в опциях не помешают.)

Текущий сопровождающий, будучи ленивым типом, считает очень полезным определить пару псевдонимов: tt для ``unzip -tq'' и ii для unzip (или zipinfo ). Затем можно просто набрать ``tt zipfile'' для проверки архива, что стоит сделать привычкой. Если повезет, unzip сообщит "В сжатых данных zipfile.zip не обнаружено ошибок", после чего можно вздохнуть с облегчением.

Сопровождающий также считает полезным установить для переменной окружения UNZIP значение `` '' и также испытывает желание добавить `` ''. Его переменная ZIPINFO имеет значение `` ''.

Статус выхода (или уровень ошибки) приблизительно соответствует кодам выхода, определенным PKWARE, и принимает следующие значения, за исключением VMS:

нормальный; ошибок или предупреждений не обнаружено.

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

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

обнаружена серьезная ошибка в формате zip-файла. Обработка, вероятно, сразу завершилась неудачно.

unzip не удалось выделить память для одного или нескольких буферов во время инициализации программы.

unzip не удалось выделить память или получить tty для чтения пароля(ей) дешифрования.

unzip не удалось выделить память во время распаковки на диск.

unzip не удалось выделить память во время распаковки в памяти.

[в настоящее время не используется]

указанные zip-файлы не найдены.

в командной строке были указаны недопустимые параметры.

подходящие файлы не найдены.

диск был (или был) заполнен во время извлечения.

конец ZIP-архива обнаружен преждевременно.

пользователь преждевременно прервал распаковку, нажав Ctrl-C (или аналогичную)

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

файлы не найдены из-за неверных паролей дешифрования. (Однако, если хотя бы один файл успешно обработан, статус выхода равен 1.)

VMS интерпретирует стандартные возвращаемые значения Unix (или ПК) как другие, более пугающие вещи, поэтому распаковка вместо этого сопоставляет их с кодами состояния в стиле VMS. Текущее сопоставление выглядит следующим образом: 1 (успех) для нормального выхода, 0x7fff0001 для ошибок предупреждения и (0x7fff000? + 16*normal_unzip_exit_status) для всех остальных ошибок, где `?' равно 2 (ошибка) для распаковываемых значений 2, 9-11 и 80-82 и 4 (фатальная ошибка) для остальных (3-8, 50, 51). Кроме того, есть вариант компиляции, расширяющий это поведение: определение RETURN_CODES приводит к понятному для человека объяснению того, что означает статус ошибки.

Архивы, состоящие из нескольких частей, пока не поддерживаются, кроме как в сочетании с zip. (Все части должны быть объединены вместе по порядку, а затем над объединенным архивом необходимо выполнить ``zip -F'' (для zip 2.x) или ``zip -FF'' (для zip 3.x), чтобы чтобы ``исправить''. Кроме того, zip 3.0 и более поздние версии могут объединять составные (разделенные) архивы в комбинированный однофайловый архив, используя ``zip -s-inarchive -O outarchive''. См. страницу руководства zip 3 для получения дополнительной информации.) Это обязательно будет исправлено в следующем основном выпуске. Архивы, прочитанные из стандартного ввода, пока не поддерживаются, кроме как с помощью funzip (и тогда можно извлечь только первый член архива).

Опция unzip (``больше'') пытается учесть автоматический перенос длинных строк. Однако код может не определить правильное расположение упаковки. Во-первых, символы TAB (и подобные управляющие последовательности) не учитываются, они обрабатываются как обычные печатные символы. Во-вторых, в зависимости от фактического порта системы / ОС, распаковка может не определять истинную геометрию экрана, а скорее полагаться на «обычно используемые» размеры по умолчанию. Для правильной обработки вкладок потребуется реализация запроса для фактической настройки табулятора на выходной консоли.

Даты, время и права доступа к сохраненным каталогам не восстанавливаются, за исключением Unix и PTC MKS Toolkit. (В Windows NT и последующих версиях временные метки теперь восстанавливаются.)

[MS-DOS] При извлечении или тестировании файлов из архива на неисправной гибкой дискете, если в сообщении DOS «Abort, Retry, Fail?» выбрана опция «Fail», более старые версии unzip может зависнуть система, требующая перезагрузки. Эта проблема кажется исправленной, но для завершения распаковки по-прежнему можно использовать Ctrl-C (или Control-Break).

Под управлением DEC Ultrix при распаковке длинных zip-файлов иногда возникали сбои (плохая CRC, не всегда воспроизводимая). Очевидно, это было связано либо с аппаратной ошибкой (кэш-память), либо с ошибкой операционной системы (неправильная обработка ошибок страниц?). Поскольку от Ultrix отказались в пользу Digital Unix (OSF/1), это может больше не быть проблемой.

[Unix и PTC MKS Toolkit] Специальные файлы Unix, такие как FIFO-буферы (именованные каналы), блочные и символьные устройства, не восстанавливаются, даже если они каким-либо образом представлены в zip-файле, а жестко связанные файлы не перекомпоновываются. В основном единственными типами файлов, восстанавливаемыми при распаковке, являются обычные файлы, каталоги и символические (мягкие) ссылки.

[OS/2] Расширенные атрибуты существующих каталогов обновляются только в том случае, если задана опция -o ("перезаписать все"). Это ограничение операционной системы; поскольку каталоги имеют только время создания, связанное с ними, unzip не может определить, являются ли сохраненные атрибуты более новыми или старыми, чем те, что находятся на диске. На практике это может означать, что требуется двухэтапный подход: сначала нормально распаковать архив (с освежением/обновлением существующих файлов или без него), затем перезаписать только записи в каталоге (например, ``unzip -o foo */'').

[VMS] При извлечении в другой каталог для параметра -d допускается только синтаксис [.foo]; простой синтаксис Unix foo молча игнорируется (как и менее распространенный синтаксис foo.dir VMS).

[VMS] Когда извлекаемый файл уже существует, запрос распаковки позволяет только пропустить, перезаписать или переименовать; дополнительно должен быть выбор для создания новой версии файла.На самом деле выбор «перезаписать» действительно создает новую версию; старая версия не перезаписывается и не удаляется.

Следующие люди были бывшими членами группы разработчиков Info-ZIP и внесли значительный вклад в ключевые части текущего кода: Грег ``Cave Newt'' Рулофс (UnZip, распаковка без сжатия); Жан-Лу Гайи (компрессия выкачивания); Марк Адлер (распаковка inflate, fUnZip).

Автором исходного кода распаковки, на основе которого был создан Info-ZIP, является Сэмюэл Х. Смит; Карл Маскотт сделал первый порт Unix; и Дэвид П. Киршбаум организовал и руководил Info-ZIP в первые дни его существования, а Кит Петерсен вел первоначальный список рассылки на WSMR-SimTel20. Полный список участников UnZip стал довольно большим; относительно полную версию можно найти в файле CONTRIBS в исходном дистрибутиве UnZip.

Мне нужно сделать zip-файл доступным для всех моих посетителей-пользователей Windows, поэтому я наивно создал zip-файл с помощью команды Unix zip (назовем его madeinlinux.zip).

Он успешно открывается с помощью WinRar или Winzip, но те из моих пользователей, которые используют стандартную обработку zip-файлов Windows, испытывают сбой при попытке распаковать его. (Windows XP)

Я сжал те же данные с помощью встроенного в Windows механизма zip, и с точки зрения Linux я не вижу никакой разницы в типе файла:

Они должны быть чем-то специфичным для zip-файла, совместимого с Windows.

Кто-нибудь знает что?

Не могли бы вы создать один из этих ZIP-файлов (с фиктивным содержимым) и разместить его на сервере, чтобы мы могли его загрузить и проверить?

Единственная машина с Windows, которую мне пришлось тестировать, была Windows 7, и у нее не было проблем с открытием и извлечением файла с помощью проводника.

8 ответов 8

  • -9 Указывает самую низкую скорость сжатия (оптимальное сжатие, игнорирует список суффиксов).
  • -y Сохранять символические ссылки как таковые в zip-архиве вместо того, чтобы сжимать и сохранять файл, на который ссылается ссылка
  • -r Рекурсивно перемещаться по структуре каталогов
  • -q Тихий режим

Честно говоря, это было так давно, что я точно не помню; но я могу себе представить, что переход по символическим ссылкам может привести к проблемам (что могло бы произойти без -r ), а -r позволяет вам взять все содержимое папки

@Wowfunhappy Я могу подтвердить, что файлы, сжатые таким образом, могут быть извлечены с помощью архиватора по умолчанию в Windows XP SP3 (проверено на виртуальной машине).

7zip — это инструмент сжатия с открытым исходным кодом, который работает в Linux, FreeBSD, Mac OS X, BeOS, DOS, Amiga и Windows.

Я настоятельно рекомендую его, учитывая версию для Windows.

Упаковка/распаковка: 7z, ZIP, GZIP, BZIP2 и TAR

Только распаковка: ARJ, CAB, CHM, CPIO, DEB, DMG, HFS, ISO, LZH, LZMA, MSI , NSIS, RAR, RPM, UDF, WIM, XAR и Z.

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

zip -Z устанавливает параметр сжатия. -Z store самый тривиальный, так как он вообще не сжимается. Это полезно, когда вы используете zip вместо tar или при устранении неполадок. В этом случае вы должны попытаться проверить, можно ли использовать несжатый архив из Windows. Если это можно использовать, вы знаете, что вам придется выбрать параметр сжатия, отличный от значения по умолчанию.

Единственное, что выглядит уместным, это

но прочтите "man zip" в своей системе, прежде чем переходить куда-либо еще.

Привет. Спасибо за предложение, но эта опция -k слишком сильно возвращает меня назад во времени. Он преобразует все имя файла в 8-символьную версию без регистра :(

Да, я помню те дни. Но помогло ли это прочитать файл встроенной программой Zip в Windows?

В дополнение к тому, что предлагали другие, важно обращать внимание на имена файлов и каталогов, поскольку Windows не обязательно нравится пути и имена файлов Linux. Иногда он также избегает их по-разному при застегивании. Примеров множество, но самое главное файлы с точками (. и ..), файлы, различающиеся только регистром (name.txt и NAME.txt), абсолютные пути к файлам (/tmp/file.txt). Некоторые другие символы, разрешенные в именах файлов в Windows, могут вызывать проблемы при открытии файлов в проводнике Windows. В моем случае символ ':' был нарушителем соглашения, но потребовалось много работы, чтобы выяснить это.

Найдите папку или файл, который вы заархивировали.

выполнить: zip -9 -r -k zip-modified-names.zip /path/to/your/folder

Если это сработает, возможно, вам лучше удалить символы, удаленные опцией -k, из имен ваших файлов/каталогов, попробуйте заархивировать в обычном режиме. Обратите внимание, что некоторые параметры, такие как -k, имеют побочные эффекты. В этом случае -k противоречит опции -q (для символических ссылок).

Читайте также: