Вопрос Перезапись файлов при извлечении из архива tar


Я играю в OpenTTD. Доступны три версии, и я хочу иметь все три; стабильной, тестирующей и ночной. Я загрузил и скомпилировал исходный код для всех трех без проблем. Проблема в том, когда я хочу скомпилировать новую версию. Когда я извлекаю tar.xz файл в /usr/lib/games/openttd-trunk/ старые файлы не перезаписываются. Вместо этого создается новый каталог openttd-trunk-r26175,

Есть ли способ извлечь файлы из архива непосредственно в /usr/lib/games/openttd-trunk/? Таким образом я могу просто make без необходимости ./configure каждый раз.

EDIT: Я не думаю, что я ясно дал понять, что в архиве есть исходные файлы внутри одной папки, называемой openttd-trunk-r26175, Я хочу извлечь все файлы из этой папки, но не сама папка.


2
2017-12-24 12:29


происхождения




ответы:


Видеть этот ответ,

Если вы архивируете одну папку верхнего уровня, вы можете использовать --strip-components 1, чтобы удалить первую папку из полного пути к файлам.

Наконец, это должно делать то, что вы хотите:

tar xf openttd-trunk-r26175.tar -C /usr/lib/games/openttd-trunk/ --strip-components 1

1
2017-12-24 13:43





Вы можете использовать --strip-components tar для удаления основных компонентов каталога и использования -C возможность указать целевое местоположение для результирующих файлов, например.

tar xvf openttd-trunk.tar.xz --strip-components=1 -C /usr/lib/games/openttd-trunk/

1
2017-12-24 13:43





Я не думаю, что я ясно дал понять, что в архиве есть исходные файлы внутри одной папки с именем openttd-trunk-r26175. Я хочу извлечь все файлы из этой папки, но не сама папка

Я думаю, вы, возможно, захотите попробовать dtrx экстрактор.

sudo apt-get install dtrx

В этой ситуации вы упомянули dtrx просит вас решить, что делать? Из его manpage:

Обычно, если архив содержит только один файл или каталог с именем, не совпадающим с архивом, dtrx спросит вас, как обращаться                 Это.

          Extract the file/directory inside another directory named after the archive.  This is the default.

          Extract the file/directory in the current directory, and then rename it to match the name of the archive.

          Extract the file/directory in the current directory.

Он также имеет -o возможность перезаписывать текущий каталог, если вы этого хотите. Итак, команда, в которой вы нуждаетесь, скорее всего:

dtrx -o --one rename openttd-trunk.tar.xz

(Конечно, этого можно добиться и другими способами, но dtrx это удобная программа, поэтому вы можете попробовать ее.)


0
2017-12-24 15:15