【shell】删除指定文件名称外的全部文件

开启bash的extglob功能(此功能的作用就是用rm !(*jpg)这样的方式来删除不包括号内文件的文件)

rm -f !(file10) # 删除全部(除括号外的文件) 保留单个
rm -rf !(test.sh|file1.log|file2.log) # 删除全部(除括号外的文件 保留多个
rm -rf !(file5|file6|file7).txt # 删除全部.txt(除括号外的文件 保留多个.txt

 

# 删除txt目录下除了touchfile.sh文件外的所有文件

    # 一个通过xargs传参,一个通过find的-exec执行命令参数来完成
    find /xxx/txt -type f ! -name "touchfile.sh"|xargs rm -f 

    # find /xxx/txt -type f ! -name "touchfile.sh" -exec rm -f {} \;   

  运行结果

  

posted @   Phoenixy  阅读(857)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示