在 Unix 中,我们如何从远程计算机仅复制文件详细信息(文件名、大小、时间)?
例如:我/opt/apache/…/webapps/Context
在远程计算机上放置了一个目录 ( )。现在我只想将此目录及其子目录中的文件的元数据(大小、时间、文件名)复制到我的本地计算机,例如root root 1150 Dec 30 12:11 file.txt
.
答案1
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
使用 secure-shell (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