在当前目录中有数百个.zip文件。此目录中还有六个名为0到5的子目录.zip文件需要均匀分布(或尽可能接近)并移动到这些子目录中。我不关心哪些文件最终存在于哪些子目录中,只要它们均匀分布即可。
我如何尝试实现这一目标。我应该使用maxdepth并尝试查找子目录的计数,然后递归放置文件或我该怎么办?
答案 0 :(得分:1)
这是一个快速而肮脏的解决方案:对于每个zip文件,将目标目录号增加1,然后将其移动到那里。
如果目标目录号码不再可用,请重置目标目录号码。
#!/usr/bin/env bash
declare -i i=0
for f in *.zip; do
mv ${f} ${i}/
i=$i+1
if [[ ! -d $i ]]; then
i=0
fi
done
现在请注意,这根本不是万无一失的,它会为每个文件产生一个单独的移动过程。如果你只需要这样做一次,我认为不值得花费更多脑细胞。但是,如果这是你想定期做的事情,你应该考虑可能发生什么样的错误,如何抓住它们,甚至可能看看更有效的运动。