Ssh

如何檢查遠端路徑是目錄還是文件?

  • July 12, 2018

我正在尋找一種簡單的方法來檢查遠端路徑是指向目錄(或符號連結目錄)還是指向可讀文件。

如果它是一個目錄,那麼我可以將該目錄中的scp多個特定文件複製到我的本地系統,而如果它是一個文件,我只能使用scp該文件。

我以-方式給出的文件路徑scpuser@host:/path/to/dir-or-file.

注意:在本地系統(Windows 上的 MobaXterm)上,我有bash並且scp可用ssh,而遠端系統(我想檢查路徑所在的位置)是一個完整的 Linux 發行版。

您正在尋找傳輸文件(如果是文件)或目錄的一部分(如果是目錄)。

if ! scp user@host:/path/to/dir-or-file local/path
then
   scp user@host:/path/to/dir-or-file/some-specific-file local/path
fi

如果scp被告知在沒有-r選項的情況下傳輸目錄,它將失敗。您可以使用它來檢測遠端主機上的給定路徑是否是目錄,然後如果第一次無法將路徑名作為文件獲取,則scp第二次呼叫以獲取目錄中的特定文件。scp

當然,如果你想傳輸整個目錄(如果它是一個目錄)你可以這樣做

scp -r user@host:/path/to/dir-or-file local/path

無論路徑是目錄還是文件,這都會起作用。

引用自:https://unix.stackexchange.com/questions/454847