Linux архивировать папку без полного пути

Сжатие tar и gzip, без путей

Нужно производить архивацию содержимого папки /home/user/new/*. Выполняю команду: tar -czf /home/backup/user.tar.gz /home/user/new/*

Архив создаётся, но при распаковке архива образуется полное дерево по которому лежали файлы пользователя, т.е. выполняю: tar xvfz user.tar.gz

и он распаковывает с видом: /home/user/new/файлы.

Каким образом сделать только файлы? Что бы путь где они были не фигурировал?

cd /home/user/new
tar -czf /home/backup/user.tar.gz *
?

Нужно это дело запускать из под Cron будет.

Так запихни это в скрипт 😉

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

Для распаковки работает, для упаковки тоже должно.

1) «папки» — в венде

Решил проблему путём написания такого скрипта и задал на выполнение Cron’ом.

#!/bin/sh cd /home/vmail/nstp-nn.ru/backup/Maildir/new tar -czf /home/backup/`date +%Y-%m-%d`.tar.gz *

cd /home/user/new/
tar -cvf /путь/куда/надо/сохранить/файл.tar `ls`

Источник

Как запаковать в tar текущую папку без полных путей

Гуглил, может плохо гуглил, но лучше не вышло. Проблема следующая.

Есть папка /nohome/nouser/nofolder/ в ней есть еще куча вложенных папок и файлов в том числе и с точкой в начале. И лежит эта папка на компе номер 1.

Имя папки я получаю в скрипте виде $foldername Мне надо запаковать содержимое в архив так чтобы в архиве не было начального пути типа /nohome/nouser/nofolder/

Потому что на компе номер 2 распаковываться все это будет тоже в папку /nohome1/nouser1/nofolder1/ которую скрипт тоже получает в виде $foldername

Неизвестна ни вложенность ни намеки на имена. То есть содержимое $foldername может быть ЛЮБЫМ.

Но все это еще не самое главное. Этих самых $foldername всего примерно 3 плюс-минус 100 и все разные. Но даже и это еще не всё. Еще надо паковать с ключом -g и более того, точка из которой будет идти упаковка и распаковка тоже может меняться. То есть сегодня скрипт работает из папки

Читайте также:  Driver tp link tl wn821n driver windows

/backup а завтра к примеру из папки

в итоге получился вот такой монстр:

Это конечно работает. Но как-то не элегантно. Неужели никак нельзя без выкрутасов со скачками по разным папкам?

Я реальный скрипт упростил чтобы не захламлять вопрос. В реальном скрипте есть еще много чего включая примерно такие конструкции timestamp=$(date +‘%Y-%m-%d_%H:%M:%S’) и их обработки так что скачки по папкам реально мешают. Их и так там получается не мало и без скачков для архивирования.

Источник

tar убрать полный путь

исходная команда tar cf — /home/user/Pictures/|pigz>Pictures.tar.gz
в архиве получаю путь /home/user/Pictures
как убрать путь? в идеале пусть файлы будут сразу в корне архива
пробовал пихать параметр -С но не получилось

Интересный у тебя tar. gnu tar отбрасывает /, и есть опция отключающая такое поведение.

выполни «tar -C /home/user/Pictures -cf — . | tar tvf -»

а без дублирования tar никак?

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

Откуда вы вообще это pigz выкопали? Уже за сегодня второй раз с похожими вопросами.

30 лет назад такая задача была в документации по Unix, как щас помню:

так вроде многопоточно сжимает в отличие от gzip

так вроде многопоточно сжимает в отличие от gzip

А вы найдите компьютеру ещё применение, чего он простаивает, что надо его загружать несколькими потоками 🙂

Откуда вы вообще это pigz выкопали?

Там же, где и pbzip2 вместе с pxz 🙂

Вас ещё на bsdtar не тренировали?
Быстро, стильно, молодёжно!

А как же, пока Linux не изобрели на BSD же сидел. Намекаете на ‘z’ ключик чтоли?

Да, и не только.
bsdtar — всё же превосходит gnu tar, как инструмент распаковки и упаковки файлов/директорий.

Читайте также:  Non pae linux ��� ���

И, переходя непосредственно к теме топика,
если есть необходимость распаковать на выбор файлы из архива, то это делается с ключом bsdtar -t ‘*/some_files_dir/*’ и mv some_files_dir destination_dir.
Повторно использовать архиватор нет нужды.

bsdtar — всё же превосходит gnu tar, как инструмент распаковки и упаковки

Ой. Да к чему тут эти религиозные войны? Совершенно глупейший оффтопик.

Для запаковки давно пора использовать zstd.

Параллельная запаковка для очень специфичных случаев (обычно либо не важно сколько она продлиться с фоне, либо упираешься во ввод/вывод).

Источник

Создать архив tar.gz и не включать абсолютные пути и при этом исключить папку

Необходимо создать tar.gz архив без путей и исключить определенные папки.

Вот так исключается папка «exclude_folder» но остаются пути файлов в архиве:

Как сделать так что бы папка исключалась и при этом архив был без путей?

Добавлено через 39 минут

Вроде бы разобрался, в данном случае надо вот так:

Программно создать архив tar.gz
Допустим у меня есть файл или массив. Как мне из него сделать *.tar.gz в программе на с++? Какой то.

Как создать архив .tar.gz текущего каталога?
Как создать архив .tar.gz текущего каталога? Например я нахожусь в каталоге user@dom

Как создать архив (tar) подкаталогов, созданных в определенное время
Доброе время суток, коллеги! Помогите новичку. Есть каталог, с подкаталогами, сформированными по.

Архив. TAR
помогите, пожалуйста! мне нужно создать архив с помощью tar когда я пишу tar -cvf filename.tar.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

TAR архив
Добрый день! Как реализовать архивацию указанного каталога TAR-архивом? Добавлено через 3 минуты.

Архив *.tar с сохранением прав
Незнаю в какой раздел писать. Необходимо создать tar архив с сохранением прав файлов, на хостингах.

Неудается распаковать архив tar
Всем, день добрый! Пытаюсь распаковать архив: tar xjf file.tar.bz2 Пишет: Невозможно write.

Преобразование python файла в tar.gz архив
У меня есть python скрипт, из которого я бы хотел сделать package который можно установить на.

Читайте также:  Faceit клиент просит обновление windows

Как создать папку по пути
Нужно создать папку в %ProgramData% или %ProgramFiles% . Как программно сделать это? Это не.

Tar —listed-incremental получаю полный архив вместо инкрементного
Здравствуйте, друзья! Осваиваю методику инкрементного резервного копирования основного раздела.

Источник

Как запаковать файлы в tar архив игнорируя каталог?

Я просто поражён, что за всё это время в интернете нет информации о том, как это сделать. Или я просто плохо ищу. Допустим у менять есть такая структура:

Я хочу чтобы все 3 файла, которые находятся внутри dist оказались в архиве. Это можно сделать так:

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

Но всё это не работает либо делает не то, что мне нужно. Неужели нет адекватного способа сделать это не перечисляя все файлы??

1 ответ 1

Неужели нет адекватного способа сделать это не перечисляя все файлы?

адекватного способа сделать неадекватное (по-русски — несоответствующее) общепринятой практике — действительно нет.

для того, чтобы при разархивировании пропустить несколько уровней каталогов, служит опция —strip-components=число . это достаточно соответствует общепринятой практике.

пример: имеется архив с такой структурой внутри:

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

а если всё-таки требуется сделать не очень соответствующее общепринятой практике, то при создании архива можно воспользоваться, например, опцией -T файл.со.списком , только в качестве файла передать файловый дескриптор со списком (если используемая оболочка такое умеет. программа bash, например, — умеет):

на тот случай, если используемая оболочка не умеет передавать файловые дексрипторы, можно либо подготовить список заранее (и указать в опции -T список имя этого файла со списком), либо сформировать список динамически и передать на stdin программе tar (указав — как имя файла в опции -T список ):

Источник

Оцените статью