删除变量bash中的文件



我有一个以元音结尾的文件名变量。我需要一次删除所有这些文件。我试过使用

rm "$vowels"

但这似乎只是返回变量内的文件,并声明存在"0";没有这样的文件或目录";

这是您对引号的使用:它们告诉rm您的变量内容将被解释为单个参数(文件名(。如果没有引号,内容将使用有效的shell规则分解为多个参数。

请注意,如果文件名中包含空格,这可能会有风险,因为无法区分文件名之间的空格和文件名中的空格。

您可以通过使用数组和使用带引号的数组展开(我记不清它的语法,但可能看起来像rm "${array[@]}"——数组中的每个元素都将作为带引号的字符串输出(来解决这个问题。

溶液

分配变量

vowel=$(find . -type f | grep "[aeiou]$")

删除变量中的所有文件

echo $vowel | xargs rm -v

最新更新