ターゲット日付別に再同期およびグループ化

ターゲット日付別に再同期およびグループ化

フラッシュカードからローカルハードドライブにファイルをコピーしていますが、ターゲットファイルをファイル変更日に対応するディレクトリにグループ化したいと思います。どんな提案がありますか?

ls -l
-rw-rw-rw- 1 admin dba 1390 Sep  6 2019 file1
-rw-rw-rw- 1 admin dba 1390 Sep  9 2019 file2

# ...magic rsync process...

/mnt/c/2019-09-06/file1
/mnt/c/2019-09-09/file2

答え1

rsync要件におよびが含まれていない場合は、スクリプトで次のことがsortできます。BASH

for filename in /path/to/source/directory/*
do
    mdate=$(date -r "${filename}" +'%Y-%m-%d')
    destination="/path/to/destination/${mdate}/"
    mkdir -p "${destination}"
    cp "${filename}" "${destination}/"
done

デフォルトでは、スクリプトはソースディレクトリ内の各ファイルを繰り返しながら起動されますfor。次に、ファイルの変更日を変数に保存します$mdate。次に、変更された日付である宛先ディレクトリを定義して作成します$mdate。最後に、ファイルをターゲットディレクトリにコピーします。

これはこれを行う方法の一般的な概要を提供します。ユースケースに応じてさまざまなことを調整できます(例:rsync代わりに使用cp、ディレクトリ内の珍しい文字の考慮、再帰的な設定など)。

関連情報