Intereting Posts
Настройка цветов для строки состояния mutt при настройке нескольких учетных записей eth0 не настроен автоматически Как настроить отдельную среду bash с помощью только утилит GNU на OS X? Путь к файлу: используйте тот же путь к файлу в unix и winodws Где моя конфигурация eth0 на Wheezy При записи нового изображения iso на CD (тип rw) все же компакт-диск отражает старое содержимое! Двойная загрузка на ноутбуке HP кажется невозможной из-за разделения HD float (i3wm) qt application (albert launcher) black box / border – проблема с конфигурацией? Как выяснить, что происходит при перезагрузке запланированного сервера? Wi-Fi во FreeBSD Live USB Список файлов, к которым обращается программа 7z из сценария bash не исключает каталогов Почему sshd не использует псевдотерминал, когда за аргументом клиента ssh следует интерактивная программа? Вставить многострочный текст перед первой соответствующей строкой в ​​файле сравнить строку в bash

Почему выполнение архива в командной строке автоматически не использует двоичный файл, чтобы открыть его, как в Windows?

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

$env:temp/SuperArchive.rar 

Почему в Linux я не могу открыть архив или извлечь его просто с помощью аналогичной команды, так как

 ~/tmp/SuperArchive.tar.gz 

Это связано с различием дизайна между Windows и Unix в отношении подхода к загрузке программ. Unix в первую очередь ориентирован на приложения: вы запускаете приложение, а в приложении вы открываете некоторые файлы. Windows в основном ориентирована на документ (в этом отношении): вы открываете документ, и Windows выбирает приложение для вас.

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

В некотором смысле, связанное с этим дизайнерским решением, Unix упрощает работу приложений: все исполняемые файлы устанавливаются в нескольких каталогах, находящихся на пути поиска команд, поэтому вы можете вызывать приложение из командной строки, введя имя исполняемого файла. Например, чтобы открыть архив в Ark, запустите ark myarchive.tar.gz . Система часто помогает вам, заполняя только имена файлов, которые имеют смысл для этого конкретного приложения.

Вы можете запустить команду xdg-open чтобы открыть файл в системном приложении. Для файла .tar.gz это, скорее всего, вызовет графический менеджер архива; какая программа вызывается, зависит от того, какие программы вы установили и в вашей графической среде.

Бинарные приложения и скрипты с shebang исполняются. Файл .gz не является исполняемым, и вам нужна программа для его открытия.

Когда xdg-utils установлены, вы можете открыть файл с помощью соответствующей программы:

 xdg-open <file> 

Первоначальное значение tar было T ape AR chiver.

Вы бы использовали его как

 tar cf /dev/rmt0 dir1 dir2 

который будет помещать содержимое dir1 и dir2 на любую ленту в локальном диске /dev/rmt0 .

Файл будет читаться с использованием

 tar xf /dev/rmt0 dir2 

для извлечения только dir2 из локальной ленты.

В философии unix вы можете архивировать файл или трубу, например

 tar cf - foo | ( ssh remote "cd /distant ; tar xf - ") 
  • для передачи из локального в / remote dir в удаленном хосте

или

 tar cf project.tar foo 

и отправить кому-то проект project.tar.

Таким образом, смола никогда не предназначалась для самоисполнения. Самая близкая вещь в unix была shar (shell archiver), которая почти делала это. Вы получите файл под названием project.shar , затем запустите

 sh project.shar 

который будет дефлировать файл в локальном каталоге (и, кстати, принести некоторый риск для безопасности).

Для самораспаковывающихся архивов нужен бинарный компонент, а бинарный компонент из нестандартной среды выполнения, такой как Win-DOS , не будет работать в стандартной среде исполнения, такой как UNIX.

Также обратите внимание, что UNIX является стандартом исходного кода, поэтому UNIX не указывает уникальный двоичный стандарт.

В UNIX были созданы самораспаковывающиеся архивы (называемые shell archies ), но эти архивы имеют тот недостаток, что они не могут обеспечить достойное сжатие.