可能的重复:
删除所有文件,但一个带有 rm 的文件
这是一个非常简单的问题,我不知道是否存在解决方案。
我在一个目录中有一些文件,假设我有 .py 和一些其他扩展文件。现在我想删除除以.py文件结尾的文件之外的所有文件。我怎么能用rm命令做到这一点?
那是我想要的东西
!(rm *.py)
Run Code Online (Sandbox Code Playgroud)
是否可以?
shopt -s extglob
rm !(*.py)
Run Code Online (Sandbox Code Playgroud)
您启用 extglob 变量。这为您提供了一些额外的模式匹配功能,尤其是否定。
您可以使用 再次禁用它shopt -u extglob。
容易记住的是找到:
find -not -name "*.py" -delete
Run Code Online (Sandbox Code Playgroud)
与 larsmas 解决方案相比,它也会删除子目录中的文件,但您可以使用 -maxdepth 参数来防止这种情况。
并非每个find实现都可能支持该delete选项。Gnu find 从 4.2.3 版开始。
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |