预览你的RM文件

预览你的RM文件
作者:SunLine     May,7,2005  lisunlin0@yahoo.com.cn
       RealMedia文件压缩率比较高,用户比较多,但没有像AVI、WMV文件那样受到Windows系统级的支持,无法方便地预览。不过笔者经过仔细研究发现可以按以下步骤修改系统某些设置,使得RealMedia文件在WinXp中也可以方便地预览。
步骤1:下载RealMediaSplitter.ax插件。这是Media Player Classic作者写的让WindowsMediaPlayer支持RealMedia文件的插件。正确安装注册这个插件后便可使得WindowsMediaPlayer支持RealMedia文件。具体安装见下载时的说明。(如果没有安装RealPlayer解码器的朋友得先下载安装RealPlayer或同类软件。推荐Real Alternative,可以人网上下载或者安装暴风影音。)
步骤2:修改.rm、.rmvb的注册表关联值,编写如下注册表文件:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/.rm/ShellEx/{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
 
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/.rmvb/ShellEx/{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{c5a40261-cd64-4ccf-84cb-c394da41d590}"
保存为.reg文件后,双击注入注册表,然后关闭已经打开的文件浏览器的窗口,再打开,使得.rm、.rmvb文件在“缩略图”模式下可以出现预览图像。
 
<think>我们被要求删除多种类型的文件,使用rm命令。但是rm命令本身并不支持直接按文件类型删除(因为Linux中文件类型通常指的是普通文件、目录、符号链接等,而不是扩展名)。不过,用户通常所说的“文件类型”指的是文件扩展名,比如.txt、.log等。 根据引用[4],我们可以使用`find`命令来查找并删除特定扩展名的文件。因为`rm`命令本身不支持模式匹配多个扩展名,但`find`可以非常灵活地根据条件查找文件,然后执行删除操作。 方法:使用`find`命令的`-name`选项匹配多个模式,然后通过`-exec`或`-delete`选项删除。 注意:删除前请务必确认匹配的文件,避免误删。 步骤: 1. 确认要删除的文件类型(扩展名)。 2. 使用`find`命令组合这些条件。 3. 执行删除。 例如,删除当前目录及子目录下所有扩展名为`.log`、`.tmp`、`.bak`的文件: ```bash find . -type f \( -name "*.log" -o -name "*.tmp" -o -name "*.bak" \) -delete ``` 解释: - `find .`:从当前目录开始查找。 - `-type f`:只查找普通文件(不包括目录等)。 - `\( ... \)`:将多个条件组合在一起。 - `-name "*.log" -o -name "*.tmp" -o -name "*.bak"`:匹配扩展名为.log、.tmp或.bak的文件。 - `-delete`:删除找到的文件(注意:此选项是直接删除,没有确认提示)。 如果系统不支持`-delete`选项,可以使用`-exec`: ```bash find . -type f \( -name "*.log" -o -name "*.tmp" -o -name "*.bak" \) -exec rm -f {} \; ``` 警告:删除操作不可逆,请谨慎操作。建议先运行不带`-delete`或`-exec rm`的`find`命令,查看匹配的文件列表,确认无误后再删除。 例如,先列出文件: ```bash find . -type f \( -name "*.log" -o -name "*.tmp" -o -name "*.bak" \) ``` 另外,引用[1]中提到`rm -rf`命令非常危险,所以在使用`find`命令删除时也要特别小心,避免匹配到重要文件。 如果我们要排除某些文件类型,可以使用`!`(非)操作符,如引用[4]中的例子: ```bash find . -type f ! -name "*.html" ! -name "*.php" ... -delete ``` 但是注意,这样会删除所有不是这些扩展名的文件,可能很危险。所以这里我们使用包含(匹配要删除的)而不是排除。 因此,针对用户的问题“rm删除多种文件类型”,实际上我们使用`find`命令来实现,因为`rm`本身不支持复杂的模式匹配。 总结: 使用`find`命令配合`-name`和`-o`(或)来匹配多种扩展名,然后使用`-delete`或`-exec rm`删除。 注意:在脚本或生产环境中使用前,务必测试。 相关问题: 1. 如何安全地删除多种类型的文件? 2. 使用`find`命令时如何排除某些文件? 3. 如何恢复误删除的文件?[^2] 4. `rm`和`find -delete`在删除文件时有何区别? 5. 如何避免误删系统重要文件? 引用说明: 我们参考了引用[4]中`find`命令排除多种文件类型的例子,但这里我们用于包含多种类型。同时,引用[1]和[2]提醒我们删除操作的危险性和恢复方法。</think>### 如何用 `rm` 删除多种类型的文件 在 Linux 中,`rm` 命令本身不支持直接按文件类型删除,但可通过组合命令实现。以下是安全高效的解决方案: #### 方法 1:使用 `find` + `rm`(推荐) ```bash find . -type f \( -name "*.log" -o -name "*.tmp" -o -name "*.bak" \) -exec rm -f {} \; ``` - **原理**: - `find .`:从当前目录递归搜索 - `-type f`:只处理普通文件(排除目录) - `\( ... \)`:分组多个条件 - `-name "*.log" -o ...`:匹配扩展名为 `.log`, `.tmp`, `.bak` 的文件(`-o` 表示 OR 逻辑) - `-exec rm -f {} \;`:对匹配文件执行强制删除 #### 方法 2:使用扩展模式匹配(需启用 `extglob`) ```bash shopt -s extglob # 启用扩展模式 rm -f @(*.log|*.tmp|*.bak) # 删除当前目录匹配文件 rm -rf **/@(*.log|*.tmp|*.bak) # 递归删除子目录匹配文件 shopt -u extglob # 关闭扩展模式 ``` #### 方法 3:删除除特定类型外的所有文件(反向操作) ```bash find . -type f ! -name "*.jpg" ! -name "*.png" -exec rm -f {} \; ``` - 此命令删除**除** `.jpg` 和 `.png` 外的所有文件[^4] > ⚠️ **重要安全提示**: > 1. 执行前先用预览命令确认文件列表: > ```bash > find . -name "*.log" -o -name "*.tmp" # 仅列出不删除 > ``` > 2. **绝对避免** `rm -rf /` 或 `rm -rf /*`,这会删除整个系统[^1] > 3. 生产环境建议使用普通用户操作,减少误删风险[^1] #### 误删恢复方案 若不慎误删,可尝试: ```bash foremost -t log,tmp,bak -i /dev/sda1 -o recovery/ # 使用取证工具恢复[^2] ``` 需注意: 1. 立即卸载分区防止覆盖 2. 成功率取决于磁盘写入情况 --- ### 命令对比表 | 方法 | 优点 | 缺点 | |------|------|------| | `find -exec` | 精确控制递归深度 | 语法稍复杂 | | `extglob` | 简洁直观 | 不支持递归子目录 | | 反向删除 | 适合保留少数类型 | 易漏掉新类型文件 | > 💡 **最佳实践**:对重要目录先创建备份再执行删除操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值