Shell-Script
想在腳本中使用 find 和 rsync
我正在嘗試製作一個將在 cron 中執行的腳本,它將搜尋特定文件名的路徑。在路徑中可能有更多具有相同文件名的文件夾。如果找到並且它們比 2 天新,則 rsync 父文件夾和所有內容。這部分有效,但僅同步 2 天以上的“filename.txt”,僅此而已:
#!/bin/sh find /path/ -name "filename.txt" -type f -mmin -$((60*48)) -exec rsync --ignore-exsiting -az --log-file=/path/ {} /source /destination \;
我假設父文件夾只是指帶有 filename.txt 的文件夾。
您可以使用 find
-printf '%h\n'
而不是 -exec 來列印此文件夾名稱。您可以將其通過管道傳輸到 shell 循環或 xargs 中,例如:find /path/ -name "filename.txt" -type f -mtime -2 -printf '%h\n' | xargs -i rsync ... {} /destination \;
我認為您需要添加
-R
到您的 rsync,否則所有目錄都將疊加在目的地。