今日の日付を使用してディレクトリを作成し、そのディレクトリにファイルを移動します。

今日の日付を使用してディレクトリを作成し、そのディレクトリにファイルを移動します。

今日の日付(yyyy_mm_dd)という名前のディレクトリを作成し、今日の日付で終わるすべてのファイルをそのディレクトリに移動するスクリプトを作成しています。私がしたこともディレクトリを選択したので、ファイルをディレクトリに移動するより良い方法はありますか?

now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/

答え1

mv *?"$now" "$now/."

?タイムスタンプの前に少なくとも1文字()を付ける必要があるため、作成したディレクトリが移動先として選択されないようにします。

答え2

このfindコマンドはファイル形式とファイル名をフィルタリングできます。
だから私はこれがあなたがしたいことをすると思います:

now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/

ただし、大規模なバッチを実行する前に、ファイル名に奇妙な点があるかどうか(たとえば、日付文字列を含む他のディレクトリなど)を検討してください。

関連情報