Od jakiegoś czasu szukam i nie mogę znaleźć definicji zwykłego pliku. Moja ścieżka jest stała (zaczynam od /
) i łączę się
scp root@IP: /path/to/picture.jpg
Powoduje zapytanie o hasło, a następnie ...
scp: .: not a regular file
Zwykły plik to plik, który nie jest katalogiem ani bardziej egzotycznymi rodzajami „specjalnych” plików, takich jak nazwane potoki, urządzenia, gniazda, drzwi itp. Dowiązania symboliczne również nie są zwykłymi plikami, ale zachowują się jak cel, gdy aplikacja uzyskuje dostęp do zawartości pliku.
Zdałeś root@IP:
jako źródło kopii i /path/to/picture.jpg
jako miejsce docelowe. Źródłem jest katalog domowy użytkownika root
na komputerze IP
. Jest to przydatne jako miejsce docelowe, ale nie jako źródło. To, co wpisałeś, wymagało skopiowania katalogu do pliku; scp
nie może skopiować katalogu, chyba że poprosisz o kopię rekurencyjną z -r
opcją (i odmówiłoby to zastąpienia istniejącego pliku katalogiem nawet z -r
, ale po cichu nadpisałby zwykły plik, jeśli źródłem był zwykły plik).
Jeśli /path/to/picture.jpg
jest to ścieżka na zdalnym komputerze pliku, który chcesz skopiować, musisz przykleić nazwę pliku do specyfikacji hosta. Jest to dwukropek, :
który oddziela nazwę hosta od zdalnej ścieżki. Musisz także określić miejsce docelowe.
scp root@IP:/path/to/picture.jpg /some/destination
Jeśli chcesz skopiować plik lokalny /path/to/picture.jpg
na zdalny host, musisz zamienić argumenty. Polecenia kopiowania w systemie Unix umieszczają źródło (źródła) na pierwszym miejscu, a miejsce docelowe na końcu.
scp /path/to/picture.jpg root@IP:
Jeśli chcesz skopiować plik zdalny /path/to/picture.jpg
do tej samej lokalizacji lokalnie, musisz powtórzyć ścieżkę. Możesz sprawić, żeby twoja powłoka powtarzała za ciebie (mniej pisania, mniej czytelności).
scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
Podczas kopiowania katalogu należy skorzystać z
-r
opcji:źródło
problem ze składnią - usuń spację między
i
źródło
scp
.not a regular file
-r
jako argumentu scp.scp root@IP:/path/to/file /path/to/filedestination
Powyższe polecenie kopiuje plik ze zdalnego serwera na komputer. Jeśli wpiszesz tylko
scp root@IP:
, spróbuje skopiować katalog domowy root (użytkownicy domowi scp.
).Musisz więc podać dokładną ścieżkę do pliku
źródło
Otrzymujesz ten błąd, ponieważ próbujesz skopiować folder, a nie plik, dlatego powinieneś kopiować pliki rekurencyjnie, używając
-r
opcjiUżyj poniższego polecenia podczas kopiowania plików z komputera zdalnego na komputer lokalny
LUB
Podczas kopiowania plików z komputera lokalnego na komputer zdalny
źródło
To zadziała (przynajmniej na moim Macu)
źródło