如何删除file.*但保留file.txt?
How to delete file.* but keep file.txt?
在bash中,如何使用file*
删除所有以file
开头的文件,但保留file.txt
?
我试过了this
shopt -s extglob
rm file* !(file.txt)
但是file.txt
还是被删除了
PS:我只需要删除以file
开头的文件,而不是所有文件。例如。我想要一个名为 food.txt
的文件仍然保留。
您需要使用 "negative" 模式匹配作为文件扩展名:
$ ls file.*
file.csv file.json file.txt file.xml
$ ls file.!(txt)
file.csv file.json file.xml
find
命令可以在此处帮助您。例如:
find . -maxdepth 1 -not -name 'file.*' -not -name '*.txt' -delete
find
方法:
find . -maxdepth 1 -type f -name 'file*' ! -name "file.txt" -delete
在bash中,如何使用file*
删除所有以file
开头的文件,但保留file.txt
?
我试过了this
shopt -s extglob
rm file* !(file.txt)
但是file.txt
还是被删除了
PS:我只需要删除以file
开头的文件,而不是所有文件。例如。我想要一个名为 food.txt
的文件仍然保留。
您需要使用 "negative" 模式匹配作为文件扩展名:
$ ls file.*
file.csv file.json file.txt file.xml
$ ls file.!(txt)
file.csv file.json file.xml
find
命令可以在此处帮助您。例如:
find . -maxdepth 1 -not -name 'file.*' -not -name '*.txt' -delete
find
方法:
find . -maxdepth 1 -type f -name 'file*' ! -name "file.txt" -delete