ファイルを見つけるためにbashスクリプトを作成しています。ファイル名最新のファイルなので、ファイル名は次のようになります。
...
Wed_Dec_30_16:47:41_PHT_2015.zip
Wed_Dec_30_16:00:41_PHT_2015.zip
Wed_Dec_30_16:00:41_PHT_2015.zip
Thu_Dec_31_16:49:14_PHT_2015.zip
...
私はすべての.zipファイルを検索するコマンドを使用していますが、find
次のような配列が必要になる可能性があると思いました。
readarray -t lines <<< "$(find . -type f -name '*.zip' -exec basename {} \;|tr -d '[.zip]'|tr '_' ' ')"
len=${#lines[@]}
for ((i=0;i<len;i++)); do
echo ${lines[$i]}
done
また、端末からこのようなすべてのファイル名(日付/時刻を含む)を取得します。それはまさに次のとおりです。
Wed Dec 30 16:47:41 PHT 2015
Wed Dec 30 16:00:35 PHT 2015
Thu Dec 31 12:14:13 PHT 2015
Thu Dec 31 12:19:34 PHT 2015
Wed Dec 30 16:49:14 PHT 2015
Thu Dec 31 13:01:11 PHT 2015
Mon Dec 28 12:35:44 PHT 2015
...
string
ところで、私が使っている製品と比べてどうかわかりませんdate
。
Wed Dec 30 16:49:14 PHT 2015
これが文字列形式のファイルを回復する本当に完全な方法であるかどうかはわかりません。Wed_Dec_30_16:49:14_PHT_2015.zip
助けてくれてありがとう。
編集する:
スクリプトを修正し、「文字列」を秒単位の「日付」に変換しました。
declare -a my_array
len=${#lines[@]}
for ((i=0;i<$len;i++));do
my_array[$i]=`date -d "${lines[$i]}" +%s`
done
最大のものを選択してください:
max=${my_array[0]}
for((i=0;i<$len;i++));do
if [ ${my_array[$i]} -gt $max ];then max=${my_array[$i]};fi
done
echo $max
端末:
1451465261
1451462435
1451535253
1451535574
1451465354
1451538071
1451277344
1451538071 <== max one
それでは、次に戻る必要がありますかWed_Dec_30_16:00:41_PHT_2015.zip
?
誰でも簡単な方法はありますか?