変更された日付とともにファイル名を追加して変数に割り当てます。

変更された日付とともにファイル名を追加して変数に割り当てます。

Unixディレクトリでファイルを見つけたいです。ファイルがある場合は、ファイル名と変更されたタイムスタンプを以下の変数に割り当てたいと思います。

variable=(find the file name, if exist add the filename with _a string _and modified time stamp)

可能ですか?次のように見えます。filename_string_modifieddate(yyyymmdd)

答え1

この試み:

variable=`find . putYourConditionHere -exec ls -l --time-style +(%Y%m%d): {} \;|sed 's/.*\(([0-9]*)\): \(.*\)/\2_string_modifieddate\1/'`

findしたがって、ファイルを検索するために使用し、-execexecオプションを使用してlsファイルを選択して目的の--time-style形式を取得し、最後にsed正しい順序を取得します。変数に渡します。

:ファイル名に日付を含めることはできないため、日付を含めました。それ以外の場合、()または同じ内容を含むファイル名のスクリプトは失敗します(42)

答え2

var=$(find -name yourfile -prune -printf '%f_%TY%Tm%Td\n')

これにより、シェル変数が既存のファイルvarで埋められます。yourfile_yyyymmdd iff

find上記がわからない場合は、次printf primitivesのようにしてください。

var=$(find -name yourfile -prune -exec sh -c 'printf "%s_%s\n" "$1" "$(stat -c "%y" "$1" | cut -d " "-f1 | tr -d "-")"' {} {} \;)

関連情報