我在专有的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