UBUNTU linux 批量删除文件

UBUNTU linux 批量删除文件

sudo su

cd /

find / -name "*google-music*" -exec rm -rf "{}" \;       注:分号是必需的


find [目录名] -name "文件名" -exec rm -rf "{}" \;

搜索删除文件,例如:find / -name *.raw -exec rm -rf "{}" \; 其中, -exec 表示后面执行命令 "{}" 表示查询到的文件名 -rf 为删除命令rm的参数,r 表示递归删除, f表示不需要确认,两个参数可根据需要去留


目录内搜索删除 :例如:find type f -name *.raw -exec rm -rf "{}" \; 其中, -exec 表示后面执行命令 "{}" 表示查询到的文件名 -rf 为删除命令rm的参数,r 表示递归删除, f表示不需要确认,两个参数可根据需要去留


一、cd命令进入这个linux文件夹目录。

二、打:find / -type f -name *.log -mtime +x -exec rm -fv "{}" \;

命令作用:在当前目录下查找x天前的后缀为log的文件并且删除。

例:find / -type f -name *.log -mtime +300 -exec rm -fv "{}" \;

查找300天前的后缀名为log的文件并且删除。



批量删除搜索到的文件:find / -name "shuaige.txt" -exec rm -f "{}" \;

删除前有提示:find / -name "shuaige.txt" -ok rm -rf "{}" \;

删除当前目录下面所有 test 文件夹下面的文件:find . -name "test" -type d -exec rm -rf "{}" \;


find /etc/rc.d -name '*crond' -exec file "{}" \;

查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性,注意:exec和file间是一个空格,file和"{}"间是一个空格,"{}"和\;之间是一个空格,\;是一个整体。




删除文件夹实例:

rm -rf /var/log/httpd/access,将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

(这里曾出现个问题,如果直接如此使用的话系统可能不会授权这个操作,并出来 Permission denied 的提示

这事你需要在 rm -rf 前补充 sudo 作为授权操作的许可, 即:sudo rm -rf 文件夹的名字)


删除文件使用实例:

rm -f /var/log/httpd/access.log

将会强制删除/var/log/httpd/access.log这个文件


ubuntu优化删除:


sudo su

cd /

find / -name "*phone-manager*" -exec rm -rf "{}" \;

find / -name "*telnet*" -exec rm -rf "{}" \;

find / -name "*tsclient*" -exec rm -rf "{}" \;

find / -name "*ssh*" -exec rm -rf "{}" \;

find / -name "*vnc*" -exec rm -rf "{}" \;

find / -name "*vino*" -exec rm -rf "{}" \;

find / -name "*vina*" -exec rm -rf "{}" \;

find / -name "*bluetooth*" -exec rm -rf "{}" \;

find / -name "*blueman*" -exec rm -rf "{}" \;

find / -name "*ftp*" -exec rm -rf "{}" \;

find / -name "*rdesktop*" -exec rm -rf "{}" \;

find / -name "*putty*" -exec rm -rf "{}" \;

find / -name "*ltsp*" -exec rm -rf "{}" \;

find / -name "*irda*" -exec rm -rf "{}" \;

find / -name "*empath*" -exec rm -rf "{}" \;

find / -name "*HTTPServer*" -exec rm -rf "{}" \;

####find / -name "*qq*" -exec rm -rf "{}" \;

find / -name "*dzh*" -exec rm -rf "{}" \;

find / -name "*google-music*" -exec rm -rf "{}" \;

find / -name "*xchat*" -exec rm -rf "{}" \;

find / -name "*udown*" -exec rm -rf "{}" \;

find / -name "*stardict*" -exec rm -rf "{}" \;

find / -name "*thunder*" -exec rm -rf "{}" \;

<think>我们正在处理一个关于在Linux系统中批量修改文件后缀名的问题。根据用户的问题,我们需要提供一种方法来实现这个功能。 在Linux中,有几种方法可以批量重命名文件,包括使用命令行工具如`rename`,或者使用shell循环结合`mv`命令。此外,也可以使用脚本语言如Python。 根据提供的引用内容,我们有一个Python脚本的例子(引用[2]),它使用`os`模块来重命名文件。但是用户可能更倾向于使用Linux内置命令,因为这样不需要编写脚本。 因此,我们可以提供两种方法: 1. 使用`rename`命令(如果系统已安装,通常基于Perl) 2. 使用shell循环和`mv`命令 注意:不同的Linux发行版可能有不同的`rename`工具。常见的两个版本是Perl版本的`rename`和util-linux版本的`rename`。这里我们假设用户使用的是Perl版本的`rename`,因为它更强大且支持正则表达式。 方法1:使用Perl版本的rename命令 命令格式:`rename 's/\.old$/.new/' *.old` 解释:将当前目录下所有以.old结尾的文件,替换为.new结尾。 方法2:使用shell循环 例如,将.txt改为.md: for f in *.txt; do mv -- "$f" "${f%.txt}.md" done 另外,如果用户想要递归地处理子目录,可能需要结合`find`命令。 考虑到用户的问题,我们首先提供简单的方法,即当前目录下的批量重命名。 我们还可以参考引用[1]中提到的“Command Prompt”,但在Linux中我们使用终端(Terminal)。 因此,我们可以这样回答: 在Linux中,您可以使用以下方法批量修改文件后缀名: 1. 使用`rename`命令(Perl版本): 如果您已经安装了Perl版本的`rename`(有时叫`prename`或`perl-rename`),可以使用正则表达式进行替换。例如,将所有`.jpeg`文件改为`.jpg`: rename 's/\.jpeg$/.jpg/' *.jpeg 注意:如果系统没有安装,可以使用包管理器安装(如Ubuntu下:`sudo apt install rename`)。 2. 使用`mv`命令结合循环: 如果您不想安装额外工具,可以使用bash循环: for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done 这里,`${file%.jpeg}`表示去掉变量`file`末尾的`.jpeg`,然后加上新的后缀`.jpg`。 3. 使用`mmv`命令(如果安装): mmv '*.jpeg' '#1.jpg' 4. 递归处理子目录(使用`find`和`exec`): find . -type f -name "*.jpeg" -exec bash -c 'mv "$0" "${0%.jpeg}.jpg"' {} \; 但是,递归处理需要谨慎,因为可能会匹配到不想修改的文件。 根据用户的具体需求,我们提供最常用的前两种方法。 由于用户没有提到递归,我们默认在当前目录下操作。 另外,我们也可以参考引用[2]中的Python脚本,但用户可能更希望使用命令行,所以我们先提供命令行方法。如果用户需要,我们再提供脚本方法。 因此,回答如下:</think>在Linux系统中批量修改文件后缀名有多种高效方法,以下是三种常用方案: ### 方法1:使用 `rename` 命令(推荐) ```bash # 安装Perl版本的rename(如未安装) sudo apt install rename # Debian/Ubuntu sudo yum install prename # CentOS/RHEL # 批量将.txt改为.md rename 's/\.txt$/.md/' *.txt ``` - **原理**:通过Perl正则表达式替换后缀,`s/\.txt$/.md/` 表示将.txt结尾替换为.md - **安全提示**:先用 `-n` 参数模拟测试:`rename -n 's/\.txt/.md/' *.txt`[^1] ### 方法2:Shell循环 + 参数扩展 ```bash for f in *.jpeg; do mv -- "$f" "${f%.jpeg}.jpg" done ``` - **关键语法**:`${var%pattern}` 删除变量末尾匹配模式 - **递归处理子目录**: ```bash find . -name "*.jpeg" -exec sh -c 'mv "$0" "${0%.jpeg}.jpg"' {} \; ``` ### 方法3:使用 `mmv` 工具 ```bash # 安装mmv sudo apt install mmv # 批量修改后缀 mmv "*.html" "#1.txt" ``` - `#1` 表示捕获的第一个通配符内容 - 支持更复杂的模式匹配(如 `mmv "img_*.png" "photo#1.jpg"`) ### 安全操作建议 1. **先备份数据**:`cp -r mydir/ mydir_backup` 2. **空后缀处理**:移除后缀用 `mv file. .file`(注意空格) 3. **大小写敏感**:Linux文件系统区分大小写(.JPG ≠ .jpg) > ⚠️ 特殊字符处理:文件名含空格时用双引号包裹变量 `"$f"`,特殊符号(如`!*`)需用单引号或转义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值