2016-07-24 9 views
-1

新しいコピーの名前は同じですが、ファイル名にタイムスタンプが付加されたディレクトリ(拡張子の前)にファイルをコピーするbashスクリプトを作成します。ファイル名にオリジナルのタイムスタンプを含む新しい名前のファイルのコピーを作成するにはどうすればよいですか?

どうすればこの問題を解決できますか?

+1

「タイムスタンプ」とは、現在の日付またはファイルの作成日を意味しますか? –

+0

スクリプトのソースコードを投稿できますか?タイムスタンプは実際にどのようにフォーマットされていますか?あなたはStackOverflow投稿ガイドラインをフォローできますか? –

答えて

0

と仮定

var="/path/to/filename.ext" #path is optional 

より${var%.*} & ${var##*.}に、[ shell parameter expansion ]を参照してください

var1="${var##*/} 
cp "$var" "/path/to/new/directory/${var1%.*}$(date +%s).${var1##*.}" 

を行います。


日付のmanページは言う:

%s seconds since 1970-01-01 00:00:00 UTC 
0
file="file_to_copy" 
cp $file "/path/to/dest/$file"`stat --printf "%X" $file` 

あなたは、あなたのニーズに適したタイムスタンプ(作成、最終アクセスなど)を選択するのstatのマニュアルページ(man 1 stat)で見ることができ

この例では、%Xを選択しました。つまり、time of last access, seconds since Epoch

1

は、ターゲット・ファイルに次のGNU環境で動作し、そのタイムスタンプを保存するだけでなく、元のファイル名にファイル自体のタイムスタンプを挿入する:ベース名の適切な使用を追加

file="/some/dir/path-to-file.xxx"; 
cp -p "$file" "${file%.*}-$(date -r"$file" '+%Y%m%d-%H%M%S').${file##*.}"

を(1)コマンドを使用すると、ファイルを別のディレクトリにコピーすることができます。

これは、GNU/Linux環境のこの外側を行うことがより困難だとあなたはdate -rコマンドを置き換えるために、awkは、PerlやPython、PHPなどの言語でもを訪問開始する必要があります。

関連する問題