Error using SCP: "not a regular file"

  • I have been searching for a while and I can't find the definition of a regular file. My path is permanent (I start at /) and I am connecting to

    scp [email protected]: /path/to/picture.jpg
    

    Results in an inquiry for a password and then...

    scp: .: not a regular file
    
  • A regular file is a file that isn't a directory or more exotic kinds of “special” files such as named pipes, devices, sockets, doors, etc. Symbolic links are not regular files either, but they behave like their target when it an application is accessing the content of the file.

    You passed [email protected]: as the source of the copy and /path/to/picture.jpg as the destination. The source is the home directory of the user root on the machine IP. This is useful as a destination, but not as a source. What you typed required to copy a directory onto a file; scp cannot copy a directory unless you ask for a recursive copy with the -r option (and it would refuse to overwrite an existing file with a directory even with -r, but it would quietly overwrite a regular file if the source was a regular file).

    If /path/to/picture.jpg is the path on the remote machine of the file you want to copy, you need to stick the file name to the host specification. It's the colon : that separates the host name from the remote path. You'll need to specify a destination as well.

    scp [email protected]:/path/to/picture.jpg /some/destination
    

    If you want to copy the local file /path/to/picture.jpg to the remote host, you need to swap the arguments. Unix copy commands put the source(s) first and the destination last.

    scp /path/to/picture.jpg [email protected]:
    

    If you want to copy the remote file /path/to/picture.jpg to the same location locally, you need to repeat the path. You can have your shell does the work of repeating for you (less typing, less readability).

    scp [email protected]:/path/to/picture.jpg /path/to/picture.jpg
    scp {[email protected]:,}/path/to/picture.jpg
    

    make sure no spaces exist between the hostname and file

    I feel so incredibly silly after reading this. source, destination! Duh!

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM