シェルで最後に作成されたファイルを出力する方法

シェルで最後に作成されたファイルを出力する方法

file1またはをfile2他のファイルとともに作成する実行可能ファイルがあります。最後に作成されたファイルを出力するシェル スクリプトを作成しようとしています。実行可能ファイルが を作成する場合file1、出力は になりますfile1。ディレクトリには、すでに と の両方file1が他のファイルとともに存在していることに注意してください。実行可能ファイルはそれを上書きします。file1/file2 が存在しない場合は、以下のスクリプトが機能しますが、と のfile2両方が存在する場合は機能しません。file1file2

if [ -e "file1" ]; then
   output="file1"
else
   output="file2"
fi

答え1

早くて簡単な方法。

output="$(ls -td control.tk input.scs 2> /dev/null|head -1)"

ただし、ファイルに改行やスペースなどのおかしな文字が含まれていないことを確認できる場合にのみ、これを使用します。ファイル名におかしな文字が含まれていないことを保証できる場合は、解析はls非常に安全です。

関連情報