手軽に多めのデータ移動をするためのワンライナー

ちょっと多めのファイルを手軽に移動させたいときに

早めに終わらせたい場合

nohup bash -c "find <src directory> -type f -mindepth 1 -maxdepth 1  | xargs -t -P8 cp -t <target directory>" &
  • nohupで切れないように
    • xargsに-tをつけてログを出しておく
  • depthのoptionは間違い防止
    • 再帰的にcpされても問題ないなら要らない
  • xargsのPでprocess並列
  • cpやmvは-tでtarget directoryを先に書けるのでxargsのとき便利

時間がかかってもよい場合はrsyncを使うと進捗がわかりやすく確実

rsync -auz --info=progress2 --no-inc-recursive <src directory>/ <target directory>

存在確認して必要なファイルだけ処理してくれるし、ディレクトリ構造も保ってくれる。

src directoryの末尾にスラッシュをつけたのはfindの場合の挙動と合わせて書いたため(中身だけをsync)