Стиснення папки (tar) без її каталогу у назві папки


21

Я намагаюся стиснути папку з tarкомандою.

Коли я намагаюся його стиснути, він працює чудово. Проблема полягає у назві файлу.

Шлях до джерела:

/data/file/

Шлях призначення:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

Я виконую команду з іншої папки, і витягуючи папку, я отримую всі підкаталоги замість папки файлів поодинці.


1
синтаксис tar: такий, tar zcvf file.tar.gz /path/dir/to/compressможливо, ви повинні змінити свою команду, tar zcvf $destinationpath $srcpathале мені незрозуміло, що вам потрібно. Чи можете ви розробити своє запитання на прикладі того, що ви очікуєте від команди tar?
Лети

дякую за коментар, моя проблема полягає в тому, що слідкуйте за коментарем, який ви тут поділилися "tar zcvf file.tar.gz / path / dir / to / compress", це повинно працювати нормально, якщо ми знаходимося в одному каталозі "файл", моя справа ми працюємо з іншого каталогу, наприклад: / home / testuser1 / file: файл - це папка, яку я хочу стиснути, і я виконую команду з root не в домашніх умовах, тому нам може знадобитися надати весь шлях до папки під час екстрадування я отримую всі підкаталоги з / home / testuser1 / file замість папки файлів
Seetha Raman

Можливо, помилка друку, але у своєму прикладі ви змішали джерело та місце призначення.
Яків Влійм

Відповіді:


50

Найпростіший спосіб зробити це - спочатку перейти до каталогу:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

Так що каталог (що містить) папки стає кореневим каталогом вашого стисненого файлу.

Трохи просунутішим є використання параметра -C:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

Це створює tar.gzфайл у поточному (робочому) каталозі, що містить усі файли / папки всередині foldername_tocompress(пам’ятайте крапку, кажучи, що всі файли / папки повинні бути включені).


4
Крапка в кінці вашої другої команди збирається включити всі файли в поточний каталог ...
David Duncan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.