如何将一个目录的子目录分成n部分?

如何将一个目录的子目录分成n部分?

我有一个包含 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)}'

相关内容