機械音痴な情報系

エラーの解決方法とTips

フォルダ内のファイルをランダムにサンプリングして別のフォルダへコピーしたい

取り敢えずプログラムを動かすために、全ての画像が入っているフォルダから、
学習用、テスト用のフォルダにランダムにサンプリングして移動させたい。

find ./FROM_DIR/ | grep *.jpg | sort -R | tail -n NUM | xargs -n 1 sh -c 'cp -v $0 ./TO_DIR'
コマンド 説明
find ./FROM_DIR/ FROM_DIR以下にあるファイル・フォルダをすべて列挙
grep *.jpg 〜.jpgとなっているファイルを検索
sort -R ランダムに並び替え
tail -n NUM NUM個のファイルを取得
xargs -n 1 sh -c 'cp -v $0 ./TO_DIR' $0に取得した文字列(ファイル名)を入れてTO_DIRへコピーする

参考