Shell

僅從 unix 中的遠端電腦複製文件詳細資訊(文件名、大小、時間)

  • June 17, 2016

我們如何在 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

commandremotemachine使用安全外殼 ( 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

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