Linux Centos 删除除某(多)个文件之外的所有文件
好久没有写东西了。通常我们通过rm -rf *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos环境下需要删除除某(多)个文件之外的所有文件的功能了。具体方法如下:
rm -f !(a)
如果保留a和b,可以运行rm -f !(a|b)来实现,不过一般bash中运行后会提示
“-bash: !: event not found ”
可以通过运行:shopt -s extglob 来解决。
set命令可以用来定制shell环境,使用选项“o”来打开或者关闭选项。例如打开选项:set -o 选项,关闭选项目:set +o 选项。
例如要打开vi交互式命令行编辑,则如下:
|
[root@localhost ~]# set -o #查看当前设置情况 |
内置set命令选项
| 选项名 | 快捷开关 | 含义 |
| allexport | -a | 从这个选项中被设置开始就自动标明要输出的新变量或修改过的变量,直至选项被复位 |
| braceexpand | -B | 打开花括号扩展,它是一个默认设置 |
| emacs | 使用emacs内置编辑器进行命令行编辑,是一个默认设置 | |
| errexit | -e | 当命令返回一个非零退出状态(失败)时退出。读取初始化文件时不设置 |
| histexpand | -H | 执行历史替换时打开!和!!扩展,是一个默认设置 |
| history | 打开命令行历史、默认为打开 | |
| ignoreeof | 禁止用EOF(Ctrl+D)键退出shell。必须键入exit才能退出。等价于设置shell变量IGNOREEOF=10 | |
| keyword | -k | 将关键字参数放到命令的环境中 |
| interactive-comments | 对于交互式shell,把#符后面的文本作为注释 | |
| monitor | -m | 设置作业控制 |
| noclobber | -C | 防止文件在重定向时被重写 |
| noexec | -n | 读命令,但不执行。用来检查脚本的语法。交互式运行时不开启 |
| noglob | -d | 禁止用路径名扩展。即关闭通配符 |
| notify | -b | 后台作业完成时通知用户 |
| nounset | -u | 扩展一个未设置的变量时显示一个错误信息 |
| onecmd | -t | 在读取和执行命令后退出 |
| physical | -P | 设置时,在键入cd或pwd禁止符号链接。用物理目录代替 |
| privileged | -p | 设置后,shell不读取.profile或ENV文件,且不从环境继承shell函数,将自动为setuid脚本开启特权 |
| verbose | -v | 为调试打开verbose模式 |
| vi | 使用vi内置编辑器进行命令行编辑 | |
| xtrace | -x | 为调试打开echo模式 |
|
[root@localhost ~]# shopt -p #查看当前设置情况 [root@localhost ~]# shopt -s cdspell #把cdspell选项打开 |
| 选项 | 含义 |
| cdable_vars | 如果给cd内置命令的参数不是一个目录,就假设它是一个变量名,变量的值是将要转换到的目录 |
| cdspell | 纠正cd命令中目录名的较小拼写错误。检查的错误包括颠倒顺序的字符,遗漏的字符以及重复的字符。如果知道一处修改,正确的路径就打印出,命令将继续。只用于交互式shell |
| checkhash | bash在试图执行一个命令前,先在哈希表中寻找,以确定命令是否存在。如果命令不存在,就执行正常路径搜索 |
| checkwinsize | bash在每个命令后检查窗口大小,如果有必要,就更新LINES和COLUMNS的值 |
| cmdhist | bash试图将一个多行命令的所有行保存在同一个历史项中。这使得多行命令的重新编辑更方便 |
| dotglob | bash在文件名扩展的结果中包括以点(.)开头的文件名 |
| execfail | 如果一个交互式shell不能执行指定给exec内置命令作为参数的文件,它不会退出。如果exec失败,一个交互式shell不会退出 |
| expand_aliases | 别名被扩展。默认为打开 |
| extglob | 打开扩展的模式匹配特征(正常的表达式元字符来自Korn shell的文件名扩展) |
| histappend | 当shell退出时,历史清单将添加到以HISTFILE变量的值命名的文件中,而不是覆盖文件 |
| histreedit | 如果readline正被使用,用户有机会重新编辑一个失败的历史替换 |
| histverify | 如果设置,且readline正被使用,历史替换的结果不会立即传递给shell解析器。而是将结果行装入readline编辑缓冲区中,允许进一步修改 |
| hostcomplete | 如果设置,且readine正被使用,当正在完成一个包含@的词时bash将试图执行主机名补全。默认为打开 |
| huponexit | 如果设置,当一个交互式登陆shell退出时,bash将发送一个SIGHUP(挂起信号)给所有的作业 |
| interactive_comments | 在一个交互式shell中,允许以#开头的词以及同一行中其他的字符被忽略。默认为打开 |
| lithist | 如果打开,且cmdhist选项也打开,多行命令将用嵌入的换行符保存到历史中,而无需在可能的地方用分号来分隔 |
| mailwarn | 如果设置,且bash用来检查邮件的文件自从上次检查后已经被访问,将显示消息“The mail in mailfile has been read” |
| nocaseglob | 如果设置,当执行文件名扩展时,bash在不区分大小写的方式下匹配文件名 |
| nullglob | 如果设置,bash允许没有匹配任何文件的文件名模式扩展成一个空串,而不是它们本身 |
| promptvars | 如果设置,提示串在被扩展后再经历变量和参量扩展。默认为打开 |
| restricted_shell | 如果shell在受限模式下启动就设置这个选项。该值不能被改变。当执行启动文件时,不能复位该选项,允许启动文件发现shell是否是受限的 |
| sourcepath | 如果设置,source内置命令使用PATH的值来寻找包含作为参数提供的文件的目录。默认为打开 |
| source | 点(.)的同义词 |
| shift_verbose | 如果该选项设置,当移动计数超过位置参量个数时,shift内置命令将打印一个错误消息 |
Linux Centos 删除除某(多)个文件之外的所有文件的更多相关文章
- Linux CentOS删除或重命名文件夹和文件的办法
Linux.CentOS操作系统下如何删除和重命名文件夹呢?办法如下: 一.Linux.CentOS下重命名文件和文件夹 mv:move 用移动文件命令就可以了,因为linux系统没有专门的重命名命令 ...
- linux删除文件夹下除了某一个文件之外的所有文件及find用法
原文: https://www.jb51.net/article/99319.htm 比如一个目录下有1,2,3,4,5这五个文件,现在我需要删除除了2以外的所有文件,那么我可以使用 find . ! ...
- Linux删除除了某些文件之外的所有文件(夹)
例如:删除当前目录下除了.tar.gz和.py结尾的其他文件 shopt -s extglob rm -rf !(*.py|*.tar.gz)
- linux shell下除了某个文件外的其他文件全部删除的命令
Linux反选删除文件 最简单的方法是 # shopt -s extglob (打开extglob模式) # rm -fr !(file1) 如果是多个要排除的,可以这样: # rm -r ...
- Linux rm 删除指定文件外的其他文件 方法汇总
一.Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹 . 二.删除制定文件(夹)之外的所有文 ...
- linux 如何删除文件夹下面的文件和文件夹,只保留两个文件
# 删除目录下那两个文件之外的所有文件 find dir/ -type f ! -name file1 -a ! -name file2 | xargs rm -f # 删除所有空目录(非空目录不 ...
- 【Linux】linux中删除指定文件外所有其他文件(夹)的问题
今天碰到要删除指定文件(夹)外的其他文件的问题.网上查到的方法是这样的 需要在当前文件夹中进行: rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1|keep ...
- Linux 下rm+grep删除除去指定文件的剩余所有文件
例如: 删除当前文件夹下 .c和 .h 文件以外的文件 rm -f `ls ./ | egrep -v "(.c$|.h$)"` 1. ls 列出所有文件; 2. ...
- 在虚拟机(VMware)中安装Linux CentOS 6.4系统(图解) 转
一.下载最新版本Linux CentOS 1.打开官网地址:http://www.centos.org/,点击Downloads->Mirrors 2.点击CentOS ...
随机推荐
- (一)shell脚本入门
shell脚本入门 1.脚本格式 脚本以#!/bin/bash 开头(指定解析器) 2.第一个shell脚本:helloworld (1)需求:创建一个shell脚本,输出helloworld 运行: ...
- Jenkins环境搭建(4)-配置定时构建
每次手动触发job构建,是很麻烦的一件事情,job中可以配置定时构建,今天就来分享下定时构建:构建分为两种:定时构建和轮询SCM. 一.定时构建 Jenkins采用了著名的UNIX任务调度工具CRON ...
- 第四篇flask中模板语言 jinja2
Flask中默认的模板语言是Jinja2 首先我们要在后端定义几个字符串,用于传递到前端 STUDENT = {, 'gender': '中'}, STUDENT_LIST = [ {, 'gende ...
- [jzoj]2538.【NOIP2009TG】Hankson 的趣味题
Link https://jzoj.net/senior/#main/show/2538 Description Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫H ...
- 201771010118马昕璐《面向对象程序设计java》第八周学习总结
第一部分:理论知识学习部分 1.接口 在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个 ...
- [LeetCode] Generate Random Point in a Circle 生成圆中的随机点
Given the radius and x-y positions of the center of a circle, write a function randPoint which gener ...
- 18 徐州 M
听了遍dls的讲解觉得这是个沙比题,结果调了两个小时... 主要注意的点有两个, 一个是 找每个灯覆盖的区间,这个用叉积看一下夹角即可 一个是 覆盖的时候点覆盖比边覆盖好写(个人感觉) 点覆盖的话,如 ...
- IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目
IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...
- 4. Scala程序流程控制
4.1 程序流程控制说明 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句,顺序控制,粉质控制,循环控制 温馨提示:Scala语言中控制结构和Java语言中的 ...
- Express全系列教程之(六):cookie的使用
一.关于Cookie 在我们关闭一个登录过的网址并重新打开它后,我们的登录信息依然没有丢失:当我们浏览了商品后历史记录里出现了我们点击过的商品:当我们推回到首页后,推荐商品也为我们选出了相似物品:事实 ...