Intereting Posts
Как отключить автозапуск сервера X в Debian Jessie? Изменение resolv.conf при подключении сетевого интерфейса к запуску системы Новая установка Ubuntu, теперь загрузочный экран перезагрузки показывает контроллер Ethernet в течение 1 минуты Разрешить имя файла с удаленного URL-адреса без загрузки файла Как обойти локальный кеш youtube? Как я могу переключить поведение прокрутки мыши, пока экран уже запущен? apt работает неожиданно на debian 8 Как использовать openSSH для шифрования диска во время загрузки (OpenSSH и Dropbear) Заполните предлагаемое действие автоматически в Bash Отключите все USB-устройства для всех пользователей. Bash Script – Wget Graphical Download Progress Замените все вхождения символа в переменной с помощью скрипта korn Извлечь заданные типы из zip-файла Почему существуют символические ссылки в / dev? (LVM) Последовательный порт Arduino Micro сбрасывает соединение через несколько секунд

Разархивировать один файл с нужным именем

Когда я tar один файл, я могу дать tar файл желаемое имя:

 $ tar -cvfj AB 

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

 $ tar -xvjf A tmp 

(т.е. извлечь A в tmp ).

Я пытался сделать это с помощью mv :

 $ tar -xvjf $1 | mv $1 tmp 

Это не сработало. $1 может быть произвольным именем, но файлы tar всегда будут одним файлом, без папок (это гарантировано).

    Поскольку вы, похоже, используете tar со сжатием bzip2 как способ простого сжатия одного файла, вы можете рассмотреть возможность использования bzip2 напрямую:

    Чтобы сжать файл (создает filename.bz2 , удаляет filename ):

     bzip2 filename 

    Чтобы распаковать файл (создает filename , удаляет filename.bz2 ):

     bunzip2 filename.bz2 

    Чтобы сжать до определенного имени файла (создает newfilename.bz2 , сохраняет filename ):

     bzip2 -c filename >newfilename.bz2 

    Чтобы распаковать в определенное имя файла (создает newfilename , сохраняет filename.bz2 ):

     bunzip2 -c filename.bz2 >newfilename 

    Смотрите также руководство для bzip2 в вашей системе ( man bzip2 ).

    Вот одно из решений:

     tar -xjOf my.tar > out 

    Это использует опцию -O tar

    -O, --to-stdout : извлечь файлы в стандартный вывод

    и перенаправляет стандартный вывод в вызванный файл. Если в архиве более одного файла, все файлы в архиве будут объединены.

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