ファイルをあるフォルダから別のフォルダに移動し、ファイル名にタイムスタンプを追加したいと思います。
たとえば、フォルダーとfile1
という2つのファイルがあります。file2
f1
このファイルのf2
ファイル名file1_22_jan_11:42
とfile2_22_jan_11:42
。
答え1
そのタイムスタンプがファイル変更時間の場合、GNU findとxargsを使用すると、次のことができます。
find f1 -maxdepth 1 -mindepth 1 -printf '%p\0f2/%f_%Td_%Tb_%TH:%TM\0' |
xargs -r0n2 echo mv
echo
満足すれば削除されます。
答え2
追加された変更日(例:2012_12_06)somefile
にコピーするには、次の手順を実行します。otherplace/somefile_
cp somefile otherplace/somefile_`stat --printf=%y somefile | sed -e 's/ .*//'`
スクリプトに入れると、おそらく最も簡単になります。
#!/bin/bash
suffix=_`stat --printf=%y $1 | sed -e 's/ .*//'`
cp $1 $2/$1_$suffix
名前を「mycp」と指定すると、次のことができます。
mycp somefile otherplace
統計を表示するにはを参照してくださいman stat
。