![](/img/trans.png)
[英]How to loop through all files of a specified type in a given directory in bash?
[英]RClone / Bash - Loop through and download all files in directory individually
我有一個我完全無法解決的問題。
我已經安裝了RClone並在CentOS上運行,我正在嘗試編寫腳本來執行以下操作
當我執行
rclone ls MsOneDrive:/Dashcam/Saved
我得到以下版本的更長版本。 其中,數字是文件大小,第二部分是文件名。
EG“文件大小filename.AVI”
511810664 00200367.AVI 509582440 01560041.AVI 86225016 03510005.AVI 8389816 03580007.AVI 503356520 05220203.AVI 502537320 06320079.AVI 508238952 06320080.AVI
有什么方法可以將其解析為一個foreach循環,或者類似的方法可以讓我在循環內執行這些操作?
遵循以下原則(忽略foreach循環的語法)
#!/bin/bash
foreach {i} (rclone ls MsOneDrive:/Dashcam/Saved)
rclone copy $i <local>
localOperation
rclone copy <local> <remote>
rclone rm <remote>
fi
您可以使用如下形式:
#!/bin/bash
while read -r size name; do
rclone copy $name <local>
(( $(stat -c %s <local>) == size )) || { echo ERROR; exit; }
localOperation
rclone copy <local> <remote>
rclone rm <remote>
done < <(rclone ls MsOneDrive:/Dashcam/Saved)
這樣做的優點之一是您可以計算總計:
#!/bin/bash
total=0
while read -r size name; do
((total+=size))
....
done < <(rclone ls MsOneDrive:/Dashcam/Saved)
printf "Total processed: %u.\n" $total
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.