Я играю в OpenTTD. Доступны три версии, и я хочу иметь все три; стабильный, тестируемый и ночной. Я скачал и скомпилировал исходный код для всех трех без проблем. Проблема в том, когда я хочу скомпилировать новую версию. Когда я извлекаю файл tar.xz
в /usr/lib/games/openttd-trunk/
, старые файлы не перезаписываются. Вместо этого создается новый каталог с именем openttd-trunk-r26175
.
Есть ли способ извлечь файлы из архива прямо в /usr/lib/games/openttd-trunk/
? Таким образом, я могу просто make
без необходимости ./configure
каждый раз.
РЕДАКТИРОВАТЬ: Я не думаю, что я ясно дал понять, что архив содержит исходные файлы в одной папке под названием openttd-trunk-r26175
. Я хочу извлечь из этой папки все файлы, но не саму папку.
См. этот ответ .
Если в вашем архиве есть одна папка верхнего уровня, вы можете использовать --strip-components 1
, чтобы удалить первую папку из полного пути к файлам.
Наконец, это должно делать то, что вы хотите:
tar xf openttd-trunk-r26175.tar -C /usr/lib/games/openttd-trunk/ --strip-components 1
Вы можете использовать аргумент tar --strip-components
, чтобы удалить ведущие компоненты каталога, и использовать опцию -C
, чтобы указать целевое местоположение для результирующих файлов, например,
tar xvf openttd-trunk.tar.xz --strip-components=1 -C /usr/lib/games/openttd-trunk/
Не думаю, что я ясно дал понять, что архив содержит исходные файлы в одной папке с именем 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
довольно удобная программа, так что вы можете попробовать ее.)