$ oldfileをバックアップフォルダに移動し、ファイル名に日付を追加できるようにしたいです。だからこれを試してみました...
mv $oldfile /home/u0146121/backupfiles/$oldfile_$(date +%F-%T)
これは私にこの出力ファイル名を与えます。 (オリジナルファイル名なし)
2013-07-11-10:22:25
その後、上記のアプローチに潜在的な問題があることに気づきました。比較したい他のファイルへのパス名を持つテキストファイルの読み込み中に読み込み中にループがあります。たとえば、$ oldfileは実際に=です。
$ cat oldfiles.txt
/home/u0146121/OldLogFiles/file2.txt
だから...file2.txtを移動し、file2.txtの名前だけを保持し、日付を追加できるようにしたいです。
答え1
シェルは未定義の変数を表示します$oldfile_
。を使用してこの問題を解決できます${oldfile}_
。
しかし、本当に古いファイルのパスを維持しますか?そうでない場合
mv $oldfile /home/u0146121/backupfiles/${oldfile##*/}_$(date +%F-%T)
答え2
Bashでファイルを移動するときにタイムスタンプを追加するソリューションは次のとおりです。
#!/usr/bin/env bash
cd "FILES_LOCATION"
COPYDIR="NEW_FILE_LOCATION"
for file in *.FILE_EXTENSION; do
NEWAPPEND=$(date +%s)
cp $file "$COPYDIR"/"$NEWAPPEND"$file
rm $file
done