Bash:删除多个文件

Bash:删除多个文件

我是初学者...

我有一个名为“苹果”的水果文件夹,里面有我想要删除的额外文件。

删除所有以“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
$

要删除文件,请替换echorm。我倾向于将它们堆叠起来,例如echo rm

如果您的文件名中不知何故出现了文字*,那么您可以通过引用它来专门删除该文件。单引号或双引号可避免“全局文件扩展”。

$ echo "red_dk*"
red_dk*
$ rm "red_dk*"
rm: cannot remove 'red_dk*': No such file or directory
$

相关内容