mam następujące polecenie w ramach tworzenia kopii zapasowych skrypt powłoki:Tar katalogiem, ale nie przechowywać pełne ścieżki bezwzględne w archiwum
tar -cjf site1.bz2 /var/www/site1/
Kiedy wyświetlić zawartość archiwum, mam :
tar -tf site1.bz2
var/www/site1/style.css
var/www/site1/index.html
var/www/site1/page2.html
var/www/site1/page3.html
var/www/site1/images/img1.png
var/www/site1/images/img2.png
var/www/site1/subdir/index.html
Ale chciałbym, aby usunąć część /var/www/site1
z nazw katalogów i plików w archiwum, w celu uproszczenia i uniknięcia niepotrzebnego ekstrakcji stałą strukturę katalogów. Nigdy nie wiadomo, w przypadku gdybym wyodrębnił kopie zapasowe stron internetowych w miejscu, w którym dane internetowe nie były przechowywane pod numerem /var/www
.
Na powyższym przykładzie chciałbym posiadać:
tar -tf site1.bz2
style.css
index.html
page2.html
page3.html
images/img1.png
images/img2.png
subdir/index.html
Tak, że kiedy wyodrębnić pliki są wyodrębniane w bieżącym katalogu i nie trzeba przenieść wypakowywanego potem i tak struktury podkatalogów są zachowane.
Istnieje już wiele pytań na temat tar i tworzenia kopii zapasowych w stackoverflow
oraz w innych miejscach w Internecie, ale większość z nich prosi o zrzucenie całej struktury podkatalogu (spłaszczenia) lub po prostu dodanie lub usunięcie początkowego/w nazwy (nie wiem, co dokładnie zmienia się podczas wyodrębniania), ale nie więcej.
Po przeczytaniu niektóre z występujących tu i tam, jak również obsługi rozwiązań, próbowałem:
tar -cjf site1.bz2 -C . /var/www/site1/
tar -cjf site1.bz2 -C//var/www/site1/
tar -cjf site1.bz2 -C /var/www/site1/ /var/www/site1/
tar -cjf site1.bz2 --strip-components=3 /var/www/site1/
Ale żaden z nich nie pracował tak, jak chcę. Niektórzy nie robią nic, inni nie archiwizują już podkatalogów.
Jest wewnątrz skryptu powłoki zapasowej uruchamianego przez Crona, więc nie wiem dobrze, który użytkownik go uruchamia, jaka jest ścieżka i katalog bieżący, więc zawsze trzeba podać absolutną ścieżkę dla wszystkiego i wolałabym nie zmieniając bieżącego katalogu, aby uniknąć dalszego łamania czegoś w skrypcie (ponieważ nie tylko tworzy kopie zapasowe stron internetowych, ale także baz danych, a następnie wysyła je wszystkie na FTP itp.)
Jak to osiągnąć?
Czy właśnie źle zrozumiałem, w jaki sposób opcja -C działa?
możliwy duplikat [Jak używać tar do archiwizowania plików z różnych katalogów bez struktury katalogów] (http://stackoverflow.com/questions/18675523/how-to-use-tar-to-archive-files-from- different-directories-without-directory-str) –
Stack Overflow to strona z pytaniami do programowania i programowania. To pytanie wydaje się być nie na temat, ponieważ nie chodzi o programowanie czy rozwój. Zobacz [Jakie tematy mogę tu zadać] (http://stackoverflow.com/help/on-topic) w Centrum pomocy. Być może lepszym rozwiązaniem będzie [Super użytkownik] (http://superuser.com/) lub [Unix i Linux Stack Exchange] (http://unix.stackexchange.com/). – jww