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

时间:2021-11-02 15:01:46

Here's what I have so far

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

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

The script works, but I can't figure out how to expand it to find other file extensions, like png or gif in addition to jpg.

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

2 个解决方案

#1


12  

How about using find?

使用find怎么样?

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

#2


3  

Assuming bash, the simplest change would be

假设bash,最简单的改变就是

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

Here's a sample on my machine

这是我机器上的一个示例

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

Desktop/polar.png

I recommend using find for that, instead.

我推荐使用find代替。

#1


12  

How about using find?

使用find怎么样?

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

#2


3  

Assuming bash, the simplest change would be

假设bash,最简单的改变就是

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

Here's a sample on my machine

这是我机器上的一个示例

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

Desktop/polar.png

I recommend using find for that, instead.

我推荐使用find代替。