MGI 球和管道 当我们从控制台工作时,Unix的使用在许多情况下都是非常有益的。 您已经使用了管道或使用了通配符*等著名字符来代替名称,等等。 好吧,当然,他们也遇到了想要删除目录中除一个或多个文件之外的所有文件的问题。 如果数量很少,这不是问题,即使从图形模式也可以轻松完成。
但是如果有很多我们 从控制台工作 事情变得更加复杂。 但这仅仅是因为我们没有资源,因为我们可以利用一些简单的选项来帮助我们将复杂的任务转换为非常简单的任务。 好吧,在这个简单的教程中,我们解释了如何仅使用一个简单的符号来做到这一点...容易,对吧? 好吧,让我们去练习:
首先,我会想像我们有 目录 称为照片,我们要删除其中的所有.jpeg图像文件。 假设有100张照片。 并且我们想要删除除其中一个名为nat7.jpg以外的所有内容。 第一步是在cd命令的帮助下转到该目录。 例如:
cd /home/Fotos
然后,我们将在需要时像往常一样使用rm命令 删除 某些东西,但是我们将指示我们想要删除除要保留的照片以外的所有内容,为此,我们将使用角色! 这样:
rm -f !(nat7.jpg)
这样,我们拒绝对rm进行删除,以便删除名为nat7.jpg的文件以外的所有内容。 如果您转到目录并执行 清单 内容中,您将能够验证是否删除了除所需照片之外的所有内容:
ls /home/Fotos
现在你可以玩这个世界了 做其他事情,例如用!(*。mp3)删除目录中的所有文件,但MP3文件除外,或者还保存要删除的各种文件或格式,例如!(nat7.jpg | isa5.jpg)或使用!(* 。txt | * .mp3)。 可能性很多。这是Unix,这是Linux!
4条评论,留下您的评论
没有一天,我们不学习任何东西! 尽管我一直在弄乱PC大约30年,而在Linux上却弄乱了20年,但我对控制台不是很满意,但我承认它非常有用,但是在记忆命令和庆祝迁移到Linux方面我一直很懒惰。图形模式。 我一点也不知道这个选项,尽管没有它我很难生存,但必须承认它看起来超级有用和实用,而且易于理解和应用。 我要注意了
谢谢您的贡献,我毫不怀疑它会非常有用。
嘿。
非常感谢你,但是…
rm -f!(*。exe)
bash:!:未找到事件
你好,
尝试激活此:
shopt -s extglob; 设置-H
然后再试一次:
rm -f!(*。exe)
一切顺利! 我希望这个对你有用。 感谢您关注我们...
您好,我有一个问题,我无法同时保存两个文件,因为当我尝试时,所有内容都将被删除,但是当我只保存一个时,我可以。 会是什么呢? 怎么解决呢?