Много раз мне нужно извлекать различные виды архивных файлов с помощью запятой. Но не все время помню точную команду для любого типа файлового архива. Итак, я должен тратить время и искать снова. Как я могу избежать этого?
Много раз мне нужно извлекать различные виды архивных файлов с помощью запятой. Но не все время помню точную команду для любого типа файлового архива. Итак, я должен тратить время и искать снова. Как я могу избежать этого?
Ответы:
Команда dtrx
твой друг по этому вопросу.
Он распаковывает любой архивный файл, угадывая его тип. Это также гарантирует, что файлы, которые вы распаковываете, будут помещены в новый каталог; избегая путаницы текущего рабочего каталога с кучей файлов.
sudo aptitude install dtrx
dtrx stuff.zip
Вы можете использовать следующий скрипт оболочки (я назвал его extract
и вставил ~/bin
):
#! / Bin / Баш если [$ # -lt 1], то echo "Использование:` basename $ 0` FILES " выход 1 фи # Я нашел следующую функцию на https://unix.stackexchange.com/a/168/37944 #, которую я немного улучшил. Большое спасибо sydo за эту идею. extract () { для аргумента в $ @; делать if [-f $ arg]; тогда case $ arg in * .tar.bz2) tar xjf $ arg ;; * .tar.gz) tar xzf $ arg ;; * .bz2) bunzip2 $ arg ;; * .gz) gunzip $ arg ;; * .tar) tar xf $ arg ;; * .tbz2) tar xjf $ arg ;; * .tgz) tar xzf $ arg ;; * .zip) распаковать $ arg ;; * .Z) распаковать $ arg ;; * .rar) rar x $ arg ;; # 'rar' должен быть установлен * .jar) jar -xvf $ arg ;; # 'jdk' должен быть установлен *) echo "'$ arg' не может быть извлечено с помощью extract ()" ;; ESAC еще echo "$ arg не является допустимым файлом" фи сделанный } извлечь $ @
Не забудьте сделать скрипт исполняемым:
chmod +x ~/bin/extract
Применение:
извлечь файл_1 файл_2 ... файл_n
basename $arg
может помочь.
atool
, с помощью которого вы можете извлечь / упаковать несколько форматов: посмотрите ответ, который я дал на этот вопрос: командная строка-архив-менеджер-экстрактор . Этот вопрос также является дубликатом этого вопроса, поэтому их, вероятно, следует объединить.