我在專有的linux發行版中有一些自動下載。 他們去臨時暫存盤。我想在完成主RAID陣列時移動它們。我能看到的最好辦法是檢查磁盤上的文件夾,看看內容是否在最後一刻發生了變化。如果不是那麼它可能完成下載,然後移動它。Bash腳本根據文件大小更改移動文件夾?
假設可能有數百個文件夾或只有一個在這個位置,它的所有文件都會到同一個地方。寫這個最好的方法是什麼?
我能得到的文件夾大小的列表與
du -h directory/name
的文件夾可以從任何地方1.5MB包含多個文件到10GB
Temp Loc: /volume2/4TBScratch/Processing
Dest Loc when complete: /volume1/S/00 Landing
編輯: 使用此:
find /volume2/4TBScratch/Processing -mindepth 1 -type d -not -mmin +10 -exec mv "{}" "/volume1/S/00 Landing" \;
find: `/volume2/4TBScratch/Processing/test': No such file or directory
4.3#
但它是否複製相關度t文件夾和所有文件。但是錯誤讓我擔心將來可能會出現問題......是因爲有多個文件,它對根文件夾中的每個文件或文件夾運行相同的移動命令?但是,由於它在第一次迭代時移動了它,它無法在下一次找到它?
EDIT2: 使用rsync
4.3# find /volume2/4TBScratch/Processing -mindepth 1 -type d -not -mmin +10 -exec rsync --remove-source-files "{}" "/volume1/S/00 Landing" \;
skipping directory newtest
skipping directory erw
解決:EDIT3 在下面的意見幫助解決。最終腳本是這樣的:
find /volume2/4TBScratch/Processing -mindepth 1 -type d -not -mmin +10 -exec rsync -a --remove-source-files "{}" "/volume1/S/00 Landing" \;
find /volume2/4TBScratch/Processing -depth -type d -empty -delete
rsync將移動文件夾和文件,但留下空的根目錄 下一個命令找到空文件夾,並將其刪除。
謝謝大家!
要移動的文件夾的大小是多少?你想把它移動到哪個目錄? – Inian
更新了問題。 –
因此,將臨時位置中所有尺寸小於10GB的文件夾移動到實際目標位置是安全的。 – Inian