我正在嘗試使用 bash shellscript 從遠程服務器獲取最近 50 個最近修改的檔案。目前,我可以使用以下代碼通過 sftp 獲取一個檔案。這個問題有什么好的解決方案?
我沒有在我的服務器上存盤來自遠程服務器的所有檔案的“副本”。所以我不相信 rsync 在這種情況下有效。
fileName=$(echo "ls -1tr" | sftp myid@removeserver | tail -1)
echo "get $fileName $local_directory" | sftp myid@removeserver
uj5u.com熱心網友回復:
使用電流bash和for回圈:
destdir="/tmp"
# get last 50 file names and save in array fileName
mapfile -t fileName < <(echo "ls -1tr" | sftp myid@removeserver | tail -50)
# get files from array fileName and save in $destdir
for f in "${fileName[@]}"; do echo "get \"$f\" \"$destdir\""; done | sftp myid@removeserver
我假設檔案名不包含換行符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/361175.html
