linux命令集:删除指定名称以外的文件

在一个目录下,想保留某几个文件,删除其它所有文件。应该怎么做呢?

比如要保留目录下后缀为 .keep的文件,删除其它的:


方法一:可以通过 grep -v 和 xargs 来实现。

命令如下:

ls | grep -v ".*\.keep" | xargs rm

其中:

grep 的-v选项作用是:

Invert the sense of matching, to select non-matching lines.  

对匹配的逻辑结果求反,即选择不匹配后边正则式的行。

xargs的作用是:分别将标准输入的每一行变成后面命令的参数。

这种方法的缺点是:只支持正则式,不能使用通配符。错误使用正则式可能导致文件被误删除。




方法二:使用临时目录

创建如下一个shell文件,命名为:rmexcept.sh,假设路径为: ~/myshell/

mkdir _to_keep_tmp_dir_
mv $* _to_keep_tmp_dir_
ls | grep -v "^_to_keep_tmp_dir_$" | xargs rm -rf
mv _to_keep_tmp_dir_/* .
rmdir _to_keep_tmp_dir_

在shell环境变量配置中,设置:

alias rmexcept=~/myshell/rmexcept.sh

以后就可以用rmexcept命令来删除指定名称以外的文件,其参数可以有通配符。


### 所有常用的Linux命令列表及用法 #### 文件和目录操作命令 - **cd** 用于改变当前工作目录。语法如下: ```bash cd /path/to/directory ``` 这会将用户的当前位置更改至指定路径的目录[^2]。 - **pwd** 显示用户当前所在的绝对路径。 ```bash pwd ``` - **ls** 列出目录内容,默认情况下,`ls` 显示的是除隐藏文件以外的内容;可以加上参数 `-a` 来查看所有文件(包括隐藏文件),或者使用 `*.h >> b.txt` 的方式来获取特定类型的文件并将其追加到另一文件中[^3]。 - **mkdir** 创建新的空目录。可以通过提供多个名称一次建立几个新目录,并通过选项 `-p` 创建多级嵌套子目录结构。 ```bash mkdir new_directory_name ``` - **rmdir** 删除空目录。如果要移除非空目录,则需借助其他工具如 rm -rf。 ```bash rmdir empty_directory_name ``` - **rm** 用来删除一个或更多文件或目录。对于非空目录应谨慎处理,通常建议先备份再执行此操作。 ```bash rm filename ``` - **cp** 复制文件或目录。支持单个或多文件的同时拷贝以及递归复制整个树形结构的功能。 ```bash cp source destination ``` - **mv** 移动文件/重命名文件。既可以作为简单的改名手段也可以实现跨位置转移资源的目的。 ```bash mv oldname newname ``` #### 查看文件内容命令 - **cat** 连接文件并将它们打印到标准输出设备上(屏幕),也可用于快速浏览短文本文件。 ```bash cat file.txt ``` - **less** 分页查看大文件内容,允许向前向后滚动而无需加载全部数据入内存。 ```bash less largefile.log ``` -n N 行数) 或结尾若干行的数据片段供预览之用。 ```bash head -n 50 logfile.log tail -f live_log_file.log # 实时跟踪日志更新情况 ``` #### 用户管理和权限设置命令 - **chmod/chown** 修改文件访问模式 (读写执属性) 和所有权归属给定对象。 ```bash chmod u+x script.sh # 给予脚本可执行权能 chown user:newgroup document.pdf # 更改文档所属者及其组别 ``` #### 系统状态监控命令 - **top** 动态实时展示正在运行中的进程信息摘要报告,便于管理员了解服务器负载状况。 ```bash top ``` #### 文本搜索与过滤命令 - **grep** 在文件内查找含有匹配字符串的那些行,常配合正则表达式一起运用以增强检索能力。 ```bash grep "search_term" *.txt ``` 以上只是对常见的一些基本命令进行了概述,在实际工作中还有很多高级特性和组合应用等待探索学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值