Shell
僅從 unix 中的遠端電腦複製文件詳細資訊(文件名、大小、時間)
我們如何在 Unix 中從遠端機器上只複製文件詳細資訊(文件名、大小、時間)?
例如:我有一個目錄 (
/opt/apache/…/webapps/Context
) 放在遠端機器上。現在我只想將駐留在此目錄及其子目錄中的文件的元數據(大小、時間、文件名)複製到我的本地機器上,例如root root 1150 Dec 30 12:11 file.txt
.
如果要獲取
opt/apache../webapps/Context
遠端電腦上目錄中文件的詳細列表remotemachine
,請使用:ssh remotemachine "ls -l /opt/apache../webapps/Context"
如果要遞歸搜尋該目錄及其所有子目錄中的所有文件,請使用:
ssh remotemachine "find /opt/apache../webapps/Context -type f -exec ls -l {} +"
這個怎麼運作
ssh remotemachine command
這
command
在remotemachine
使用安全外殼 (ssh
) 時執行。command
可以是您選擇的任何命令。在上面的兩個範例中,我使用了:
ls -l /opt/apache../webapps/Context
/opt/apache../webapps/Context
這將以“長”格式顯示目錄列表。您可以使用任何ls
選項來選擇您喜歡的格式或排序。見man ls
。
find /opt/apache../webapps/Context -type f -exec ls -l {} +
這用於
find
遞歸搜尋子目錄。它找到的文件再次顯示為ls
。-type f
告訴find
只顯示正常文件而不是目錄。find
有許多選項,您可以使用它們來選擇您感興趣的文件。見man find
。更多的選擇
如果要將輸出保存到文件,請使用重定向。例如:
ssh remotemachine "ls -l /opt/apache../webapps/Context" >outputfile
如果您想在螢幕上顯示輸出並保存到文件,請使用
tee
:ssh remotemachine "ls -l /opt/apache../webapps/Context" | tee outputfile