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

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

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

РЕДАКТИРОВАТЬ: Я не думаю, что я ясно дал понять, что архив содержит исходные файлы в одной папке под названием openttd-trunk-r26175. Я хочу извлечь из этой папки все файлы, но не саму папку.

2
задан 24 December 2013 в 17:20

3 ответа

См. этот ответ .

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

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

tar xf openttd-trunk-r26175.tar -C /usr/lib/games/openttd-trunk/ --strip-components 1
0
ответ дан 24 December 2013 в 17:20
  • 1
    K понятый должны использовать глобальное если оператор для целых чисел? спасибо Oli – potholiday 16 June 2015 в 11:12

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

tar xvf openttd-trunk.tar.xz --strip-components=1 -C /usr/lib/games/openttd-trunk/
0
ответ дан 24 December 2013 в 17:20

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

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

sudo apt-get install dtrx

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

Обычно, если архив содержит только один файл или каталог с именем, которое не совпадает с именем архива, 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
ответ дан 24 December 2013 в 17:20

Другие вопросы по тегам:

Похожие вопросы: