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