ファイルをあるフォルダから別のフォルダに移動し、名前にタイムスタンプを追加する方法は? [コピー]

ファイルをあるフォルダから別のフォルダに移動し、名前にタイムスタンプを追加する方法は? [コピー]

重複の可能性:
ファイル名の末尾に変更された日付タイムスタンプを使用して複数のファイルの名前を変更しますか?

ファイルをあるフォルダから別のフォルダに移動し、ファイル名にタイムスタンプを追加したいと思います。

たとえば、フォルダーとfile1という2つのファイルがあります。file2f1

このファイルのf2ファイル名file1_22_jan_11:42file2_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

関連情報