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
したがって、ファイルを検索するために使用し、-exec
execオプションを使用して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 "-")"' {} {} \;)