我正在尝试在shell脚本中查找具有多个扩展名的文件

时间:2012-05-01 20:27:20

标签: linux shell

这是我到目前为止所拥有的

DIR="/home/username/Pictures/Wallpapers"

while [ 1 -eq 1 ]
do
    PIC=$(ls $DIR/*.jpg | shuf -n1)
    PIC1="file://"$PIC

    gsettings set org.gnome.desktop.background picture-uri $PIC1
    sleep 30;
done

该脚本有效,但我无法弄清楚如何扩展它以查找其他文件扩展名,例如除了jpg之外的png或gif。

2 个答案:

答案 0 :(得分:12)

如何使用find?

find $DIR -name \*.jpg -o -name \*.png -o -name \*.gif -print

答案 1 :(得分:4)

假设bash,最简单的更改将是

PIC=$(ls $DIR/*.{jpg,png,gif} | shuf -n1)

这是我机器上的示例

$ export DIR=Desktop
$ PIC=$(ls $DIR/*.{jpg,png,gif} | shuf -n1)
$ echo $PIC

Desktop/polar.png

我建议使用find代替。