LINUX.ORG.RU

Как вы относитесь к архивам с ПО без директории верхнего уровня?

 ,


0

1

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

Для участия в опросе войдите или зарегистрируйтесь.

>>> Результаты

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

Без контекста вопрос бессмысленный. Иногда именно так и надо, и это не лень, а правильный подход. Иногда так не надо, и бесит. Всё зависит от того, что это за файлы, зачем они в архиве, каково их предназначение, и т.д. и т.п.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

Очень бесит, автор не доделал свою работу

Zhbert ★★★★★
()

Правый клик, Распаковать -> Распаковать во вложенную папку.

ogion ★★★
()
Ответ на: комментарий от seiken

Лучше прям в тект вопроса вынести, чтоб и с главной было понятно, о чём речь хоть примерно.

Сам тогда разрываюсь между первым и вторым пунктом. Вроде как слегка неприятно, но и «очень бесит» сказать не могу даже близко — бесят за компом обычно всё же другие вещи. Наверное второй вариант всё же самый подходящий для меня.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

Редко распаковываю архивы вручную. Чаще всего даже не замечаю. В целом, можно взять за привычку сначала tar tf, затем tar xf.

kaldeon ★★
()
Ответ на: комментарий от seiken

Да, запоминать ключи просто из-за разных форматов неприятно.

kaldeon ★★
()

Очень бесит, особенно когда сам так делаю :)
Причина тому привычка, например делая zip архив в GUI просто выделяю файлы и создаю архив, он получается с включением каталога где лежат файлы, а затем делаю zip -r9 blabla.zip blabla, а это уже нет. А ещё часто делаю love архивы и там верхний каталог не нужен, с ним работать ничего не будет. От этого и наверное получается порой, то что получается.

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

В случае если что-то сделал «распаковать здесь» на love архив и получил распыление файлов по $HOME например, тут как бы будет понятен гнев, но это как бы это смешно не звучало, неправильное использование этого архива.

Но в целом бесит да. В случае если в архиве что-то распространяется именно для распаковки и всё, то конечно нужен верхний каталог иначе ад.

А ещё если в архиве 1 файл, то наоборот бесит когда есть верхний каталог. Йо короче, нужна привычка распаковывать всё всегда в пустой каталог явно, а там по ситуации, всё ::)

Всё равно - у меня и так бардак с файлами

К слову сделайте про это кто-то опрос, и чтобы там про использование стандартных каталогов типа «Картинки», «Документы» было. У кого свалка «всё в одном» а доступ через поиск, а у кого структурировано, если не всё то важное. Ну или типа такого.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)

Смотрю каждый раз, если ли директория, и если нет, сначала создаю её

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

В Кедах, к слову, аж три варианта распаковки из контекстного меню: распаковать в режиме самосвала, распаковать в новый каталог, распаковать с созданием каталога при необходимости. То есть, задача уже автоматизирована.

Создаю директорию сам, в любом случае, в консоли

Как насчёт убрать первую запятую и слегка переставить слова? «В любом случае создаю директорию сам, в консоли».

Создаю руками, в консоли или гуе, иногда уже после распаковки. И нет, не в любом случае. См. выше. А ещё меня категорически не устраивает каталог с единственным каталогом внутри.

Всё равно - у меня и так бардак с файлами

Почти всё равно. И нет, не такой уж и бардак. Как раз в бардаке последствия распаковки методом «где приспичило» более драматичны.

В общем, варианты местами получились какие-то крайние и стереотипные. Предлагаю подумать.

Vidrele ★★★★★
()

Вообще, зависит от контекста, как выше @CrX написал. Иногда отсутствие верхнего уровня – это правильно (но во имя справедливости, такое случается весьма редко, намного реже, чем когда он есть).

Ну и в подавляющем большинстве случаев я распаковываю архивы по F5 из mc, а там всегда заранее видно, куда будут литься файлы. (Это, кстати, ещё один аргумент любителям заявлять «я работаю в консоли, мне mc не нужен», впрочем, на поверку оказывается, что большинство этих псевдоконсольщиков для сколько-нибудь нетривиальных действий начинают лезть в nautilus, dolphin и тому подобные клоны одного известного недофайлового недоменеджера, созданного корпорацией Microsoft для снижения порога вхождения людей, далёких от компьютера. Именно реальной работе в консоли mc очень даже помогает.) Если говорить про «чистый GUI» без консоли, аналогичный путь предлагает Double Commander, например.

Этот вариант, конечно, можно натянуть на пункт

Смотрю каждый раз, если ли директория, и если нет, сначала создаю её

Но правильнее, мне кажется, добавить пункт

Всё равно – я распаковываю двухпанельным ФМ с визуальным контролем

hobbit ★★★★★
()
Ответ на: комментарий от Vidrele

Ээээ… ты ещё не заметил, что там написано «если ли», по всей видимости, вместо «есть ли».

Я сам только что увидел, впрочем.

hobbit ★★★★★
()
7 сентября 2025 г.
Ответ на: комментарий от hobbit

«я работаю в консоли, мне mc не нужен»

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

kaldeon ★★
()

Работать с архивами приходится настолько редко, что проблему с несколькими директориями даже не замечал. Можно будет перейти на aunpack, чтобы вручную не проверять корневую директорию архива. Не люблю обёртки, но здесь UI-польза очевидна.

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

К сожалению, есть одна семантическая проблема. Как сделать копирование, удаление, создание каталога? Для работы с обычной файловой системой пользователь самостоятельно использует системные cp/mv/rm/mkdir, которые не проникают внутрь архивов. Такое ощущение, что придётся реализовать локальные версии этих утилит. Абстракции «файл», которую можно было бы выделить и запомнить как в Explorer.exe, нет.

Копирование может быть следующим:

  • из этого архива в этот же архив (при этом резолвить “.” и “..” придётся самому, включая обход проклятых симлинков)
  • из этого архива в фс (как тогда быть с двойным смыслом “.”, которая может обозначать текущий каталог как внутри tar, так и внутри фс?)
  • из фс в этот архив (как тогда понять, где искать исходный файл: в фс или внутри архива?)
  • из этого архива в другой архив и наоборот

И это минимум. Почему, например, нельзя сделать grep -l по содержимому файлов архива?

Все эти вещи можно было бы получить бесплатно, если можно было монтировать tar как файловую систему. Но так почему-то никто не делает.

Как вариант, можно сделать такие встроенные команды:

  • Cp src dst будет копировать внутри архива. Аналогично Mv, Rm, Mkdir — только внутри архива.
  • X [src [dst]] распаковывает текущую директорию. Без аргументов — текущую директорию, один аргумент — переданный файл или директорию. Если два аргумента, то второй указывает целевую директорию.
  • R [src [dst]] добавит файл из файловой системы.
  • Копирование/перемещение между двумя архивами — никак, ибо не могу найти простого интерфейса.

Edit: вместо этих извращений лучше монтировать архив как фс.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 4)
Ответ на: комментарий от kaldeon

Интересно, почему так не делают

Отчего же не делают, ещё как делают. И софта для этого дела тоже куча альтернатив есть. Есть archivemount, есть fuse-zip, fuse-7z и иже с ними. Из относительно недавнего вот ratarmount сделали — он в некоторых сценариях использования прям очень ощутимо быстрее остальных.

CrX ★★★★★
()

Всё равно – я распаковываю двухпанельным ФМ с визуальным контролем

Не уверен, насколько это актуально, и кто как пользуется, но предположу, что всё же слово «двухпанельным» лучше убрать. Распаковывать с визуальным контролем можно и в ФМ другого типа, например в ranger. Возможно даже в гуёвых каких-нибудь. И тут уже нет принципиальной разницы именно в работе с архивами — кому уж что удобнее, хоть для архивов, хоть просто для двух каталогов разных.

P.S. сам если использую ФМ, то двухпанельник (сейчас vifm, раньше mc тоже юзал), но люди разные.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от kaldeon

Двухпанельные ФМ эту проблему практически решают. Нет, с точки зрения ОС это не монтирование, но для оператора почти одно и то же.

hobbit ★★★★★
()
Ответ на: комментарий от CrX

Гуёвый тоже может быть двухпанельным.

И ranger, судя по скриншотам, тоже двухпанельник, только управление чуток другое.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Гуёвый тоже может быть двухпанельным.

Да, конечно может, я этого и не отрицал, тот же DoubleCommander. Но может быть и не двухпанельным, но всё равно поддерживать открытие архивов, и соответственно, с его помощью тоже кто-то может распаковывать с визуальным контролем.

И ranger, судя по скриншотам, тоже двухпанельник, только управление чуток другое.

Не, он не двухпанельник, он многопанельник. Там может быть хоть одна, хоть куча панелей, другой принцип. В какой-то момент времени панелей, конечно, может быть видно в том числе и две, но тем не менее, это не оно. По дефолту там вообще три «панели», но не независимых, как по умолчанию в двухпанельниках, а иерархически: в одной панели родительский каталог виден (и выделен текущий), во второй — текущий (и выбираем файл, как и в двухпанельнике), а в третьей — содержимое этого самого выделенного файла.

Мне не зашёл, кстати, ranger. Двухпанельники как-то сподручнее. По крайней мере для всех моих юзкейсов точно.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

Поправил во избежание нездоровых дискуссий после подтверждения.

Но на мой взгляд, в двухпанельнике визуальный контроль всё равно более естественен: он там есть по умолчанию, поскольку сразу видны и источник, и приёмник. Да, в проводникообразных тоже можно, во-первых, заходя в архив, увидеть, что там есть, во-вторых (необязательно, но повышает наглядность), расположить два окна рядом.

hobbit ★★★★★
()
Ответ на: комментарий от kaldeon

Ну и зачем почиркал? Кому-то может пригодиться, а так читать гораздо тяжелее. А удобство монтирования архива как ФС не очень-то очевидно, особенно если речь про разовую распаковку.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Но на мой взгляд, в двухпанельнике визуальный контроль всё равно более естественен: он там есть по умолчанию, поскольку сразу видны и источник, и приёмник.

Полностью согласен. Однако, чего и как только люди не юзают, чего только не считают удобным для себя…

CrX ★★★★★
()

Вообще пох - я не пользуюсь архивами с ПО. Поэтому и бардака с файлами нет.

zabbal ★★★☆☆
()

Создаю временную директорию, распаковываю архив туда. Кто ж его знает, что в архиве-то?

gns ★★★★★
()

У меня есть свой скрипт unzip-safe, создающий подкаталог, распаковываю сомнительные зипы им. Для тарболлов ожидаю адекватного содержимого, и временами обжигаюсь

annulen ★★★★★
()

выбираю в контекстном меню «распаковать во вложенную папку» либо создаю ее вручную

ivan007007
()

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)

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

dmitry237 ★★★★★
()

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

pasquale
()

В tmpfs распаковывать над.

ext4
()

/tmp для кого (для чего) придуман? Вот и взял себе за правило работать с временными файлами/каталогами там. Более того, пакеты дистрибутивов при установке распаковываются в /.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от hobbit

Можно убрать прочерки. Было поздно и нужно было остановиться на какой-то версии.

А удобство монтирования архива как ФС не очень-то очевидно, особенно если речь про разовую распаковку.

Процесс можно ускорить. Я примерно представляю как можно кликнуть на архив и в новом окне сразу откроется /mnt/tar/nudes, соответствующий этому архиву.

Проблема в том, что это на разных ОС по-разному делается, поэтому настройка может быть сложнее, чем установка двухпанельника. Например, archivemount в homebrew доступен только под линукс. Поэтому потестить пока не могу.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 2)

Очень бесит, автор не доделал свою работу

но меня это не безпокоит, у меня всё-равно мой скрипт для разпаковки архивов сам создаёт директорию, если в архиве нет директории верхнего уровня.

teod0r ★★★★★
()

Очень бесит, автор не доделал свою работу

masa ★★★
()

Бесит не только в архивах с ПО, а вообще в любых архивах. Те, кто так делает, альтернативно одарённые люди.

skiminok1986 ★★★★★
()

В целом, негодую. Но aunpack сам создаёт директорию при распаковке (если её нет и более 1 файла в архиве), так что на практике не обращаю внимания.

anlar
()

Всегда проверяю, что там внутри.

th3m3 ★★★★★
()
Ответ на: комментарий от annulen

Практически у всех архиваторов (с которыми работал, т.е. tar, zip, 7z) есть опция просмотра структуры архива. Т.е. логично написать универсальный скрипт, который смотрит, есть ли директория, и создаёт её при необходимости перед распаковкой.

seiken ★★★★★
() автор топика

В опросе нет правильного ответа: сам только так и делаю, потому что это правильно, а не потому что лень.

Пользователь пусть сам решает в какую директорию всё сложить, и нужно ли ему вообще складывать всё в какую-то одну директорию.

Camel ★★★★★
()

У нас сезон кринжовых опросов?

wandrien ★★★★
()

Где вариант «а мне нравится, когда делают без директории»?

Shushundr ★★★★★
()
Ответ на: комментарий от Camel

Куча авторов распространяет файлы в архивах с папкой, которая не соответствует названию архива. В духе
thunderbird-128.0.6.src.tgz -> thunderbird
someproject-branchname.tar.gz -> someproject

У архиватора должна быть опция «сложить всё в папоньку соответствующую названию архива», многие держали бы эту опцию всегда включенной через alias’ы bash’а.

Camel ★★★★★
()

Не хватает варианта «Менеджер архивов при распаковке сам определяет, надо ли создавать директорию» и варианта «Я и сам только так делаю - директория создастся автоматически при распаковке».

Без них нерепрезентативно.

mogwai ★★★★★
()

если у тебя архив с ПО, то значит ты его руками распаковываешь. а криворучки должны быть автоматически приучены смотреть чаго ты делаешь.
Use filemanger, Luke !!

периодически внутри вижу имя с версией, вот это бесит.

архив есть просто архив структура диров не определена никем и никак.
песшите стандарт на архив с релизом ПО :)

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 2)

где вариант "не использую архивы с ПО"? вот вообще. я хз, что это такое. все нужное ставится из репозитория, ненужное - либо имеет свои репы, либо хотя бы скачивается деб-пакетом, либо идет нахер.
да-да, технические любой пакет (deb/rpm/etc) - это "архив с ПО", но какие там внутри каталоги - это не забота пользователя, ему вообще плевать, что там внутри.

PerdunJamesBond ★☆
()

Если у тебя там архив то просто всегда тыкай распаковать во вложенный каталог.

Если что-то самораспаковывающееся, то да, бесит. Особенно если оно ещё и время модификации файлов сохраняет.

ya-betmen ★★★★★
()

Что такое «архивы с ПО»?

duott ★★★★★
()
Ответ на: комментарий от perl5_guy

Можно (правда файл придётся создавать не таром а другими способами) ещё сделать чтобы распаковывалось не просто без одной директории в текущую, а вообще куда-то в ../. На линуксовом таре проверял лет 5-10 назад, получалось.

firkax ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.