如何删除文件.*但保留file.txt?

lan*_*bai 2 bash wildcard delete-file

在bash中,如何删除所有file使用file*但仍保留的文件file.txt

我试过这个

shopt -s extglob

rm file* !(file.txt)

file.txt仍然被删除.

PS:我只需要删除以文件开头的文件file,而不是所有文件.我想要一个名为food.txt仍保留的文件.

gle*_*man 6

您需要使用"否定"模式匹配作为文件扩展名:

$ ls file.*
file.csv  file.json  file.txt  file.xml

$ ls file.!(txt)
file.csv  file.json  file.xml
Run Code Online (Sandbox Code Playgroud)