.doc
除了其他类型的文件之外,远程服务器(支持 SCP)上还有一个文件集合。
.doc
我正在尝试编写一个脚本来从远程服务器检索最新(最近修改的)文件。我当前工作目录的路径不能是绝对路径,因为我的脚本可能部署在另一台服务器中。
我可以分两步部分解决问题:
将所有
.doc
文件从远程服务器复制到我的本地~/Downloads
文件夹:scp -i key.pem abc@xyz:/tmp/*.doc ~/Downloads/
选择最新的文件
~/Downloads
并将其复制到所需的文件夹:cd ~/Downloads latest_file=$(ls -t *.doc | head -n 1) cp -p "$latest_file" /current working directory
如何通过一条语句将.doc
远程服务器 xyz 文件夹下的最新文件复制/tmp
到本地计算机,而不将所有文件下载到中间文件夹中?
答案1
我不太清楚你的问题是什么,但如果你尝试复制到当前目录,那么只需使用.
引用当前目录,以便你的命令是:
scp -i key.pem abc@xyz:/tmp/*.doc .
答案2
让我们看看这是否能解决您的问题。制作一个脚本。
FILE=`ssh abc@xyz ls -ht /tmp/*.doc | head -n 1`
rsync -avz -e ssh abc@xyz:"$FILE" .
这将在远程服务器上运行命令“ls -ht /tmp/*.doc | head -n 1”并显示最新的文档。将指定文件从远程服务器同步到当前目录。 ssh/rsync 还会询问您用户“abc”的密码,最好使用无密码登录或密钥文件“key.pem”。