Mam zamiar wykopać to jeszcze bardziej, aby dać pełne rozwiązanie tego (tylko dla Linuksa), ponieważ google przekierować do tego i miałem ten sam ten sam problem.
Z prostym naciśnięciem adb, problem polega na tym, że wszystkie podkatalogi muszą istnieć PRZED naciśnięciem przycisku, co może być bardzo bolesne w osiągnięciu.
Należy pamiętać, że łatwym rozwiązaniem jest zip folder, wciśnij zamek, a następnie rozpakuj urządzenie. Ale załóżmy, że nie masz rozpakowanego urządzenia (bardzo nieprawdopodobne, naprawdę).
Chcesz wypchnąć pełne drzewo z wieloma podkatalogami do swojego urządzenia w pustym katalogu myDirectory. w urządzeniu źródłowym
Najpierw utwórz wszystkie podkatalogi,:: Istnieją dwa kroki
cd <folder-containing-myDirectory>
find myDirectory/ -type d -exec adb shell mkdir <path-to-folder-containing-myDirectory-in-device>/{} \;
Polecenie znaleźć wszystkie podkatalogi myDirectory (w tym, więc jeśli myDirectory już istnieje, trzeba będzie jeden błąd. wiadomość, którą możesz bezpiecznie zignorować) i dla każdego z nich utwórz odpowiedni katalog na urządzeniu.
następnie wcisnąć wszystko
adb push myDirectory/. <path-to-folder>/myDirectory
Oznaczyłem twoją odpowiedź jako poprawną, ponieważ uważam twoją próbkę za najczystszą. Chociaż demilano również dało wyniki, przykład pushu nie był tak wyraźny jak twój. – kakyo
Możesz utworzyć podfoldery w jednym poleceniu przed wykonaniem polecenia push, zobacz moją odpowiedź poniżej. – autra
Wymaga to ukośnego ukośnika: '' 'adb push mySourceFolder /. myDestAndroidFolder/'' ' –