最後の100項目をあるフォルダから同じフォルダ名を持つ別のフォルダに移動します。

最後の100項目をあるフォルダから同じフォルダ名を持つ別のフォルダに移動します。

ここの各フォルダには約1000個のアイテムがあり、同じフォルダ名を作成して保存して、最後の100個のアイテムを別のディレクトリに「移動」したいと思います。

例:

/original/folder1/
/original/folder2/
       ...
/original/folder50/

上記の各フォルダの最後の100項目を、最初に作成されていない下のターゲットに移動したいと思います。

/dest/folder1/
/dest/folder2/
      ....
/dest/folder50/

答え1

これはひどい解決策です。しかしそれは働く。パスと切り取りフィールドは、ディレクトリ構造に従って設定されます。

for i in `find original/ -type d | grep -v 'original/$'`;
  do foldernames=`echo $i | cut -d "/" -f 3-`; 
  mkdir -p dest/$foldernames ; 
  ls $i | tail -n 100 | xargs -i -t mv $i/{} dest/$foldernames ; 
done

関連情報