Próbuję skompresować katalog o
/home/cyrus/sql
I chciałem zmienić katalog roboczy podczas kompresowania folderu:
/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql
Ale kiedy sprawdzam plik zip:
/ $ unzip -l sql.zip
Archive: sql.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-30 10:59 home/cyrus/sql/
1776642 2013-05-23 10:22 home/cyrus/sql/wordpress.sql
--------- -------
1776642 2 files
Folder główny powinien być sql
. Co zrobiłem źle?
cd /home/cyrus && zip /sql.zip sql
jeśli chcesz, aby plik zip został utworzony w katalogu głównym.nie jestem pewien, czy rozumiem to prawo, ale -b nie zmieni folderu głównego. Umieści tymczasowe archiwum zip w katalogu / home / cryus, po zakończeniu kopiując plik sql.zip do bieżącego katalogu. Ta opcja jest przydatna tylko podczas aktualizacji istniejącego archiwum, a system plików zawierający to stare archiwum nie ma wystarczającej ilości miejsca do przechowywania zarówno starych, jak i nowych archiwów w tym samym czasie.
Spróbuj użyć:
-j Zapisz tylko nazwę zapisanego pliku (skasuj ścieżkę) i nie przechowuj nazw katalogów. Domyślnie zip zapisze pełną ścieżkę (względem bieżącej ścieżki).
źródło
-j
może nie mieć racji; Zakładam, że OP chce zachować ścieżki względne, a nie usuwać wszystkie ścieżki.Zainspirowany odpowiedzią Stephane:
Wynik:
źródło
Łatwiej może być dowiązanie symboliczne folderu, który próbujesz skompresować do bieżącego katalogu. W ten sposób możesz pozostać tam, gdzie jesteś.
Jeśli chcesz, to dowiązanie symboliczne.
źródło