dir1に次のファイルがあるとしましょう。
-rw-r--r-- 1 user user 10240 Jul 2 11:54 10_data.txt
-rw-r--r-- 1 user user 36048 Jul 4 11:56 95_data.txt
-rw-r--r-- 1 user user 35634 Jul 7 11:56 01_data.txt
-rw-r--r-- 1 user user 10630 Jul 9 11:56 19_data.txt
-rw-r--r-- 1 user user 35476 Jul 9 11:57 93_data.txt
タイムスタンプ、特に日付(2、4、7、9)に基づいてこのファイルをコピーできるようにしたいです。
前任者:
copy 10_data.txt into a directory called 02
copy 19_data.txt into a directory called 09
copy 93_data.txt into a directory called 09
ターゲットディレクトリ(01、02、03など)がすでに存在するため、ディレクトリなどを作成する必要はありません。毎日の深夜以降にcronジョブとして実行する予定です。
find
このタスク(date +%d)
や同様のタスクに使用できるものはありますか?
ありがとうございます!
ベストアンサー1
zshが利用可能な場合は、次のようにしてこれを実行できます。zstatモジュール:
zmodload zsh/stat
for f in *.txt
do
cp -p -- "$f" $(zstat -F %d +mtime "$f")/
done
このzstat -F %d +mtime
コマンドにはフォーマットされた出力(-F %d
)が必要です。月の日ファイル変更時間です。結果の10進範囲は01から31までで、コマンドのターゲットとして使用されますcp
。