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?

Lukas Knuth
źródło
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 .
Golimar
źródło
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