Jak wyodrębnić określony folder ze spakowanego archiwum do danego katalogu?
Próbowałem użyć
unzip "/path/to/archive.zip" "in/archive/folder/" -d "/path/to/unzip/to"
ale to tworzy folder tylko na ścieżce, do której chcę go rozpakować i nic więcej nie robi.
"\\"
byłby użyty (w przeciwnym razie zawsze trzeba pamiętać, które postacie są specjalnymi ucieczkami). Jest to różnica w cytowaniu, jeśli autor miał na myśli „cytowanie globalnego znaku” (niepotrzebne). Tak czy inaczej pojedynczy odwrotny ukośnik to literówka.Próbować:
źródło
caution: filename not matched: foldername/\*
gdy uruchamiam,unzip $repozip "$2-master/\*" -d /srv/www/magento/
gdzie$2
jest nazwa folderu w"path/*"
.mv
później, aby uzyskać pliki tam, gdzie ich potrzebowałem.-j
do tego.-j
usuwa wszystkie informacje o ścieżce, a wszystkie pliki trafiają do folderu docelowego. Czy istnieje sposób na usunięcie tylko wspólnej części ścieżki? Podobne do zip-r
.Obie istniejące odpowiedzi są poprawne, ale określenie katalogu docelowego jest nieco trudne, co powinno być lepiej wyjaśnione.
Powiedzmy, że
/target/root/
jest katalogiem docelowym oryginalnej akcji rozpakowywania, np .:Następnie musimy użyć tego samego
/target/root/
katalogu docelowego, nawet jeśli chcemy wyodrębnić tylko określony podkatalog, tak jak działa rozpakowanie:W końcu reguła jest naprawdę prosta, użyj tego samego docelowego katalogu głównego dla
-d
opcji .Przy okazji,
-qq
opcja rozpakowania jest naprawdę cicha, możesz ją usunąć.źródło