php文件遍历批量改后缀名 Linux脚本批量改文件后缀名教程

本文介绍了一种使用PHP脚本和Linux shell命令批量修改文件后缀名的方法。通过递归函数list_file(),PHP脚本可以遍历指定目录下的所有文件并更改特定后缀名的文件。同时,Linux shell命令find结合awk和xargs实现类似功能,适用于未知或特定后缀的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要安装php 用php执行当前文件

1.php遍历文件批量改后缀名

<?php
/**
 * @param $dirname
 * @return bool
 * 修改文件后缀名
 */
function list_file($dirname){
    if(!is_dir($dirname))
    {
        echo "{$dirname} not effective dir";
        return false;
    }
    $handle=opendir($dirname); //打开目录
    while (($file = readdir($handle))!==false) //读取目录
    {
        if($file!="." && $file!='..')
        {
            if(is_dir($dirname.$file))
            {
                list_file($dirname.$file); //递归修改文件夹内的文件夹文件
            }else{
                $temp = substr($file, strpos($file, '.')+1); //获取后缀格式
                $pos = strpos($file,'.'); //获取到文件名的位置
                $filename = substr($file,0,$pos); //获取文件名
                if ($temp == "unknown"){
                    rename($dirname.'/'.$file,$dirname.'/'.$filename.'.jpg'); //替换为php后缀格式。
                }
                if($temp == "unk_s.jpg"){
                    rename($dirname.'/'.$file,$dirname.'/'.$filename.'_s.jpg'); //替换为php后缀格式。
                }
            }
        }
    }
}

list_file("api/photo/");
?>

直接再linux下面运行当前命令

2.linux脚本批量遍历文件修改后缀名

#从当前文件夹开始遍历 遍历当前文件夹所有文件 将.unknown后缀文件修改成.jpg
find ./ -name "*.unknown"  | awk -F "." '{print $2}' | xargs -i -t mv ./{}.unknown  ./{}.jpg
 
#从当前文件夹开始遍历 遍历当前文件夹所有文件 将.unk_s.jpg后缀文件修改成.jpg
find ./ -name "*.unk_s.jpg"  | awk -F "." '{print $2}' | xargs -i -t mv ./{}.unk_s.jpg  ./{}_s.jpg

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值