フォルダの内容をサブフォルダに分割する方法

フォルダの内容をサブフォルダに分割する方法

自動的に(プログラミング方式で、強く打つスクリプト)は、フォルダの内容を親フォルダのあるサブフォルダに分割します。

たとえば、580個のファイル(同じサフィックスを含む)を持つフォルダがあり、それをたとえば同じ名前の6つのサブフォルダに分割し、すべての100個のファイルを保存しようとしますsubfolder1subfolder2残りのファイルを含む最後のファイルを除く) 。または均等に分割する方が簡単です)。

ありがとう

答え1

zsh代わりに使用してくださいbash

subfolders=( subfolder{1..6} )
files=( *(N.) )
n=100
while (( $#files && $#subfolders )); do
  mkdir -p -- $subfolders[1] && mv -- $files[1,100] $subfolders[1]/
  subfolders[1]=() files[1,100]=()
done

zmv(zshの一括名前変更)を使用して循環方式に移動することもできます。

autoload -Uz zmv
subfolders=( subfolder{1..6} )
mkdir -p -- $subfolders
(n=0; zmv '*(#q.)' '$subfolders[n++ % $#subfolders + 1]/$f')

関連情報