删除以“或’开头的文件

删除以“或’开头的文件

这里有点像 Linux 新手用户。

我想删除列表中包含的多个文件。这些文件的名称中可能包含空格。我可以创建一个类似这样的文件:

rm -f "01. Song1.mp3"
rm -f "02. Song2.mp3"

等等。我使用 sed 将“rm -f”和“”字符添加到每行的末尾。

现在我执行该列表时,它却不工作了。实际上什么都没被删除。

另外,当我使用 ls 列出文件时,带有空格的文件以 ' 开头,其他文​​件以 " 开头

我认为这是问题的一部分。

答案1

当您运行时rm -f "01. Song1.mp3"rm会收到 2 个带有值-f01. Song1.mp3没有任何引号的参数。因此显然rm找不到所需的文件。引号仅用于 shell 进行特殊字符串处理。如果您想将引号传递给命令,则需要正确转义它

rm -f '"01. Song1.mp3"'
rm -f '"02. Song2.mp3"'

或者

rm -f "\"01. Song1.mp3\""
rm -f \""02. Song2.mp3\""

或者更好的是让 shell 扩展真实名称

rm -f *01.*.mp3
rm -f *02.*.mp3

您也可以直接输入rm -f \"rm -f '"然后按,Tab这样 shell 就会自动完成文件名并进行正确的转义。您应该避免逐字输入名称

相关内容