Назад | Перейти на главную страницу

Могу ли я извлечь файл или каталог с помощью команды tar и дать ему конкретное имя, под которым он будет извлечен?

Возможный дубликат:
Могу ли я извлечь определенную папку с помощью tar в другую папку?

Я новичок в мире Linux и хотел бы знать, могу ли я извлечь определенный файл или каталог, присвоив ему новое имя или путь. Например, если в моем архиве есть папки sample1, sample2 и sample3, я хотел бы иметь возможность извлечь sample3, но как sample4. Тот же вопрос относится к файлам.

Есть два способа выполнить эту задачу.

  1. смола имеет -s вариант, определяемый следующим образом:

    -s шаблон

    Измените имена файлов или элементов архива в соответствии с шаблоном. Шаблон имеет формат / старый / новый / [gps]. old - это базовое регулярное выражение. Если это не применимо, узор пропускается. new - это строка замены совпадающей части. ~ заменяется совпадением, от 1 до 9 - содержимым соответствующей захваченной группы. Необязательный следящий g указывает, что сопоставление должно продолжаться после сопоставленной части и останавливаться на первом несовпадающем шаблоне. Необязательный завершающий s указывает, что шаблон применяется к значению символических ссылок. Необязательный завершающий p указывает, что после успешной замены исходное имя пути и новое имя пути должны быть напечатаны со стандартной ошибкой.

    Вы можете запустить tar xf <archive file> -s /sample3/sample4/ для достижения желаемого результата.

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

    Пример: tar xf <archive file> -O sample3 > sample4

    Обратите внимание, что имя файла "sample3" не является аргументом для -O параметр; он используется tar для ограничения извлечения только этим файлом. Если вы не указали sample3, тогда tar извлечет все файлы из архива и объединит их в один большой несжатый выходной файл.