Ssh
如何檢查遠端路徑是目錄還是文件?
我正在尋找一種簡單的方法來檢查遠端路徑是指向目錄(或符號連結目錄)還是指向可讀文件。
如果它是一個目錄,那麼我可以將該目錄中的
scp
多個特定文件複製到我的本地系統,而如果它是一個文件,我只能使用scp
該文件。我以-方式給出的文件路徑
scp
為user@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
無論路徑是目錄還是文件,這都會起作用。