витяг без першої директорії


29

При витягуванні файлу tar.gz в ansible я закінчую першу директорію

- name: Extract archive
  unarchive: src=file.tar.gz
             dest=/foo/bar

що призводить до того, /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive як я можу запобігти створенню цього додаткового рівня ієрархії?


Можливо, це не актуально, але я знаю, що вам іноді потрібно бути обережними, додаючи проміжний косу рису в каталог призначення. Чи допомагає це взагалі?
SauceCode

Відповіді:


40

Для того, щоб зняти bar-version-someFirstLevelFolderвам потрібно скористатися --strip-components=1опцією в tar. Так має виглядати ваша книжка для гри

- name: Extract archive
  unarchive:
    src: file.tar.gz
    dest: /foo/bar
    extra_opts: [--strip-components=1]

1
Це здається правильною відповіддю, але наразі це може спричинити збій. Дивіться цей звіт про помилку: github.com/ansible/ansible/isissue/29657 проміжним рішенням буде untar в батьківському каталозі, а потім матиcommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

Випробуваний в останній версії, він працює. Але, антиархів не є безсильним.
Jérôme B
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.