obetnij ścieżkę bezwzględną w archiwum


0

W moim skrypcie zipwywołuję komendę z pełną ścieżką do archiwum i katalogu docelowego w następujący sposób:

zip -r /srv/www/htdocs/xxx/system/tmp/build/tmp_build.zip /srv/www/htdocs/xxx/system/tmp/build/tmp_build_dir_1344856484/

tmp_build_dir_1344856484-Directory drzewo wygląda następująco:

+
|-- output.xml
|-+ ressources/
  |- some_file.png
  |- another_file.png

Mój problem polega na tym, że potrzebuję katalogu głównego archiwum zip, aby mieć plik XML i ressourcesfolder, ale obecnie archiwum zawiera także pełną nazwę ścieżki.

# Wanted path to some_file.png in zip-file:
/ressources/some_file.png
# What I currently get:
/srv/www/htdocs/xxx/system/tmp/build/tmp_build_dir_1344856484/ressources/some_file.png

Jak mogę obciąć ścieżkę tylko do określonego poziomu, aby móc zachować podfolder, ale nie mieć w nim całego drzewa katalogów?


Skończyło się na zmianie katalogu roboczego, jak wyjaśniono tutaj
Lukas Knuth,

Odpowiedzi:


0

Spróbuj tego:

$ cd /srv/www/htdocs/xxx/system/tmp/build/tmp_build_dir_1344856484/
$ zip -r ../tmp_build.zip .

Prawdopodobnie lepiej jest użyć podpowłoki w skryptach, aby nie modyfikować bieżącego katalogu roboczego, np (cd $long_path && zip -r ../tmp_build.zip). Lub też można pushd/popddo tego użyć .
xaizek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.