我是初学者...
我有一个名为“苹果”的水果文件夹,里面有我想要删除的额外文件。
删除所有以“red_dk”和“red_lt”开头的文件
删除所有以“.gif”结尾的文件
如果我做一个文件,它就可以工作。
#!/bin/bash
rm "red_dk*"
如果我做多个,它不会
#!/bin/bash
rm "red_dk" "red_lt*" "*.gif"
答案1
字符*
(以及?
和[a-z]
样式字符组)匹配名称中所有其他非通配符部分的所有文件,并且扩展参数列表包含所有匹配的文件名。这称为“全局文件扩展”。
您可以使用 进行预览echo
。
例如:
$ echo red_dk* red_lt* *.gif
red_dk1 red_dk2 red_lt1 red_lt2 meme.gif answer.gif
$
要删除文件,请替换echo
为rm
。我倾向于将它们堆叠起来,例如echo rm
。
如果您的文件名中不知何故出现了文字*
,那么您可以通过引用它来专门删除该文件。单引号或双引号可避免“全局文件扩展”。
$ echo "red_dk*"
red_dk*
$ rm "red_dk*"
rm: cannot remove 'red_dk*': No such file or directory
$