Я хочу орієнтувати каталог X, не включаючи його батьків


9
tar cvf /var/lib/backup/sample.tar /home/user/.project

Однак, коли я видобуваю, я отримую і його батьків

/backup/
  - /home/
     - /user/
        - .project/

Цей команд tar виконує цю роботу, оскільки він не містить нічого іншого у своїх батьків (інші папки, userнаприклад,).

Я хочу це зробити програмно, тому зміна поточного робочого каталогу на /home/user/насправді не є варіантом. Чи можна це зробити?

Відповіді:


17

Ви можете або скористатися -Cопцією для /home/userвнесення до каталогу перед націленням або використання --strip-components 2при вилученні.

tar cvfC /var/lib/backup/sample.tar /home/user .project
#                              Note the space ^
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2

1
+1 круто .. Я просто знайшов -Cперемикач, коли я переглядав сторінку чоловіка , але не міг зрозуміти це. Звучав для мене більше, ніби він буде використовуватися під час untar. Дізналися чогось нового.
Левон

@Kevin Дякую Варіант С працює бездоганно. Дякую!
User007

2
Я не міг змусити його працювати так. Згідно з читанням gnu.org/software/tar/manual/tar.html#SEC118, я мав успіх у такій формі: tar cvf /var/lib/backup/sample.tar -C / home / user .project
Айвар

2

Я думаю, що якщо ви не потрапили cdдо каталогу топлевелю, з якого ви хочете створити tarфайл, у вас не повинно виникнути цієї проблеми. Тобто,

cdдо userі tarвгору .project.. ви можете вказати призначення для файлу tar, /var/... як і раніше.

Або є причина, яку ви не хочете / не cdможете user?


Так. Це було б одне рішення. Дякую. Але я сподіваюся, що є кращий спосіб? Я хочу розібратися з цим програмним союзником, і я не хочу os.chdir(base_dir)весь час видавати його в коді :), тому було б добре, якщо є вихід з цього. Дякую
User007

@ User007 Ага, добре, бачу. Ви можете оновити своє запитання, щоб включити цю вимогу. Приємний ідентифікатор користувача до речі :)
Levon

Дякую. Так. Я щойно оновив своє запитання. О, це приховати мою особистість ...
User007

1
@ User007 люблю частину 007 .. і схоже, що ти теж працюєш у Python (що є ще одним із моїх улюблених)
Левон,

:) Так. Добре, що наш друг Kevinдопоміг мені з правильною командою. Тож я дам йому галочку. Але я підтримав тебе. Дякую!
User007
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.