ディレクトリの最後の10個のイメージを含む配列を生成するbashコマンドは何ですか?

ディレクトリの最後の10個のイメージを含む配列を生成するbashコマンドは何ですか?

Bashスクリプトを作成していますが、次のように配列を作成する必要があります。最新の画像ファイル10個(最新のものから最も古いものまで)現在ディレクトリにあります。

"画像ファイル"は.jpgまたは.png。いくつかの特定の画像タイプのみをサポートするだけで、これを正規表現(たとえば)として表すこともできます"\.(jpg|png)$"

私の質問は、たとえば、これを実行しようとすると、$list=(ls -1t *.jpg *.png | head -10)各ファイル名が配列の別々の要素になるのではなく、結果ファイルのリストが何らかの方法で1つの要素になるということです。

また、$list=(find -E . -iregex ".*(jpg|png)" -maxdepth 1 -type f | head -10)find は各./ファイルの前に配置されているようですがsedfind$list

ベストアンサー1

正しい構文は次のとおりです。

list=($(ls -t *.jpg *.png | head -10))
echo First element: ${list[0]}
echo Last element: ${list[9]}

ただし、この回避策はファイル名にスペース文字(または通常はスペース)が含まれている場合に問題を引き起こします。

おすすめ記事