我有一个包含 52 个子目录的目录,我想将它们分成 11 个文件夹,每个文件夹有 5 个子目录。谁能建议我一种方法来实现这一目标?
答案1
首先,你要求数学上的不可能,但我会忽略它。
您问的基本问题很简单:
[ ! -e split ] &&
set ./*/ &&
while mkdir split && [ 4 -lt "$#" ]
do mv "$1" "$2" "$3" "$4" "$5" split
mv split "${1%/}"
shift 5
done&& mv "$@" split && mv split "${1%/}"
因为您没有指定任何类型的名称或类似名称,所以需要小心避免覆盖任何内容,并且最终只是将按字典顺序排序的每 5 个目录移动到以每 5 个命名的目录中。也就是说,如果当前目录中没有名为的文件或目录,则会执行此操作分裂
答案2
我不知道我是否理解错了,但你可以尝试这样的事情:
ls -1 | awk '{tmp=int($NR/5);system("mkdir Folder"$tmp);system("mv "$1" Folder"$tmp)}'