如何流畅地删除终端中的文件?


33

例如我

cd Music
dir

并得到

123456789.mp3
qweerkrtrkgljdjfkdjfdkf.mp3
a.mp3
b.mp3
blabla.mp3

我怎样才能毫不费力地删除文件qweerkrtrkgljdjfkdjfdkf.mp3blabla.mp3

UPD:关键思想是文件名可以很长,所以我实际上不想键入它们。

Answers:


57

尝试这个:

rm -f 2.mp3 blabla.mp3

rm删除文件,并-f强制将其删除(这样它就不会停止,询问您是否要删除文件)。如果这不在您的主目录中,请添加sudo。这是另一种可能需要较少键入的方法(虽然较难阅读)

rm -f {2,blabla}.mp3

扩展为2.mp3 blabla.mp3。如果要使用更大的文件名,则可以使用通配符(*),它将返回以您选择的文件名开头/结尾的所有项目。例如:

rm -f bla*

将删除所有以开头的文件bla。如果您使用此方法:

rm -f *.mp3

它将删除所有以结尾的文件.mp3。如果您使用此方法:

rm -f bla*.mp3

它将删除所有以bla结尾的文件.mp3*:P字符几乎无穷无尽


1
我知道有人会进来。愚蠢的HTC键盘!

2
如果文件归您所有,则您无需使用sudo。

好点子。我更新了我的帖子。
MiJyn 2012年

3
也许还需要注意使用制表符完成文件名的功能?
Darael 2014年

如果要包含子目录怎么办?我尝试添加-r,但是没有用。我有几个烦人的._。我要从网站清除的mac索引文件。
Frantumn

4

就像每个人都说的那样,这rm -f <file>是要走的路,但是,正如stonedsquirrel所说,您可以键入前几个字母并点击<TAB>,它将自动填充文件名。


0

尝试这个: rm qweer*.mp3 bla*.mp3

注意:如果有一个以这些字母开头的文件名,该命令将对其进行检测。


0

正如@Hckr已经提到的,名称之间没有相似之处。您可以使用通配符,例如,rm *.mp3将删除名称以结尾的所有文件.mp3。如果没有类似之处,则需要分别指定每个文件。

实际上,您可以使用制表符完成功能来保存一些键入内容。在您的示例中,如果您键入rm q并按制表键,它将完成到rm qweerkrtrkgljdjfkdjfdkf.mp3。之所以有效,是因为它是唯一以q。开头的文件。如果键入,rm b这将不足以完成操作,因为您有两个以b开头的文件。


0

简单, rm 2.mp3 blabla.mp3

注意:这将导致永久删除!


对于文件:

1234.MP3 1345.MP3 1234.MP4

rm -f 1*3*.MP3 会永久删除前2个,无需确认!

*甚至是空白,这就是为什么它仍然删除第二个的原因。


1
可能是-f rm

如果有一个以q开头的文件,则键入q *,如果有更多文件,它将删除所有q-begginers。

您知道可以编辑自己的答案以包括此额外信息。

1
除了评论,您还应该使用edit按钮将这些出色的功能添加到答案中。
Marco Ceppi

做完了!下次我将使用笔记本电脑。

0

我要做的是,如果要删除的文件少于要删除的文件,请在运行这些命令之前将您不想删除的文件放在文件夹中。但是最终将通配符(“ *”和“?”)与定义语句结合使用将轻松完成工作。仅取决于要保留或删除的文件。

是否曾经尝试将文件拖放到终端应用程序窗口中?它可能会为您克隆目录以及文件名路径样式。但是,如果您仅删除2个或3个文件,我希望它只是出于学习目的,否则我将使用键盘上的“ TAB”手动键入路径和文件名,它应该自动完成在文件名中给出的文件名。以您已经输入的内容开头的当前目录。


0

制表符完成这样bash默认情况下在Ubuntu中启用了此功能。它是这样的:

$ rm bl<tab>

将自动更改为

$ rm blabla.mp3

如果文件名不明确,则需要再次按下tab以查看可能的文件名列表:

$ rm b<tab><tab>
blabla.mp3  b.mp3

这也适用于许多其他命令,例如apt-getservice等等。

如果您对更复杂的制表​​符感兴趣,请zsh参阅Grml config,它令人赞叹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.