変更されたタイムスタンプを上書きする

変更されたタイムスタンプを上書きする

現在のディレクトリのファイルがタイムスタンプで変更されるようにするには、これを行う必要があります。最初はうまくいきますが、もう一度実行するとファイルに別のタイムスタンプが追加されます。タイムスタンプを追加するのではなく、置き換える方法が必要です。

#!/bin/sh
IFS='
'

time=$(date)

for file in *
do
     mv $file "$file""$time"
done

古いファイルをどのように上書きするのか悩んでいますが、タイムスタンプで変更すると名前が変更されるため、方法が浮かびません。

ベストアンサー1

ファイル名の日付の現在の部分を変更し、それを変更する必要があります。これは、ファイル名の基本名部分を解析する直接的な文字列操作アクティビティです。現在の命名規則に関する詳細情報がないと、実行する操作に対する一般的なアプローチ以外に、実際にはどのような解決策も提供できません。

はい

ファイル名が次のとおりであるとします。ちょっと_..日付..

for file in *
do

  basefile=${file/_*//}
  mv "$file" "$basefile""$time"
done

それ以降のすべての内容を_切り取って$basefile

名前

$ echo "$file"
blah_Sun Oct 27 15:20:58 EDT 2013

$ echo ${file/_*//}
blah/

おすすめ記事