Moim celem jest skopiowanie tylko wszystkich plików z ~ / local_dir do [email protected] / var / www / html / target_dir przy użyciu scp i nie twórz kategorii local_dir w local_dir.
/var/www/html/target_dir/files..
ale nie
/var/www/html/target_dir/local_dir/files..
przy użyciu parametru -r
scp * [email protected]:/var/www/html/target_dir
robi tego, co chcesz? Jeśli tak, edytuj z bardziej szczegółowymi informacjami o tym, co próbujesz zrobić i do tej pory próbowałeś.Odpowiedzi:
scp ma argument -r. Spróbuj użyć:
Argument -r działa tak jak argument -r arg w cp, przenosi cały folder oraz wszystkie pliki i podkatalogi w środku.
źródło
local_dir
katalog w / var / www / html / target_dir moim celem jest kopiowanie tylko plików.$ scp -r ~/local_dir [email protected]:/var/www/html/
W razie potrzeby zmień nazwę nowego katalogu.$ scp -r ~/local_dir/* [email protected]:/var/www/html/target_dir
cokolwiek pływa łódką.*
na kropkę,.
a skopiujesz zawartość katalogu (w tym wszelkie pliki kropek) bez kopiowania samego katalogu.scp -pr ~/local_dir/. [email protected]:/path/to/target_dir
Jeśli twoim celem jest, aby przenieść wszystkie pliki z
local_dir
tej*
zamiennika załatwia sprawę:-r
Opcja oznacza „rekurencyjnie”, więc trzeba go napisać, kiedy starasz się przenieść cały katalog lub kilka katalogów.Od
man scp
:Jeśli więc masz w sobie podkatalogi
local_dir
, ostatni przykład przesyła tylko pliki, ale jeśli ustawisz tę-r
opcję, pliki i katalogi zostaną przesłane.źródło
Dołączenie
/.
do katalogu źródłowego spowoduje przeniesienie jego zawartości zamiast samego katalogu. W przeciwieństwie do rozwiązania wieloznacznego, będzie to również obejmować ukryte pliki.Podziękowania dla tego rozwiązania należą do roaima, ale pomyślałem, że powinien on zostać opublikowany jako rzeczywista odpowiedź, a nie tylko komentarz.
źródło
Wykonaj następujące kroki:
Skopiuj katalog
local_dir
ze wszystkimi jego podkatalogami:skopiuj tylko zawartość
local_dir
katalogu, a nielocal_dir
sam katalog :Nie używaj:
scp -r ~/local_dir/. [email protected] /var/www/html/target_dir
ponieważ generuje błąd (właśnie przetestowany i otrzymał następujący błąd):źródło