关于Linux中文件名中带有空格问题分析

关于Linux中文件名中带有空格问题分析

因为有的时候,文件或目录带有空格总是操作不便。下面的方法在cp,mv等命令中都可以使用。

方法一:使用shell脚本即linux命令符执行,需要将带有空格的文件或目录使用单引号或双引号引起来。

mv '/data/kara/wyq/bak_bak/bak_m4a/韩红-青藏  高  原-伴奏.m4a' /data/kara/wyq/bak_bak/bak_m4a/韩红-青藏高原-伴奏.m4a

mv /data/kara/wyq/bak_bak/bak_m4a/'韩红-青藏  高  原-伴奏.m4a' /data/kara/wyq/bak_bak/bak_m4a/韩红-青藏高原-伴奏.m4a

方法二:也可以直接对所有文件或目录名的空格加入转义字符。

mv /data/kara/wyq/bak_bak/bak_m4a/韩红-青藏\ \ 高\ \ 原-伴奏.m4a /data/kara/wyq/bak_bak/bak_m4a/韩红-青藏高原-伴奏.m4a

扩展:关于php处理带有空格的文件或目录问题。

直接用双引号或单引号引起来即可,也即是php可以直接识别文件或目录中的空格,不会引起语法上的歧义,下面给出处理空格文件相关代码实例。

案例一:

rename("/data/he ee ee.txt",'/usr/se.txt')

循环改变某个目录下的文件,将其全部改为删除空格后的文件名。

案例二:

<?php

/*去除空格案例*/

$source = opendir('/data/kara/wyq/bak_m4a');

while($row = readdir($source)){

if($row =='.' || $row =='..'){continue;}

$newfile = str_replace(' ','',$row);

exec("mv /data/kara/wyq/bak_m4a/\"$row\" /data/kara/wyq/bak_m4a/$newfile",$a,$b);//注意如果使用shell等外部脚本解析执行,那么带空格的文件名需要使用引号引起来

}

?>

案例三:

$source = opendir('/data/kara/wyq/bak_bak/bak_m4a');

while($row = readdir($source)){

if($row =='.' || $row =='..'){continue;}

$newfile = '/data/kara/wyq/bak_bak/bak_m4a/'.str_replace(' ','',$row);

$oldfile =  '/data/kara/wyq/bak_bak/bak_m4a/'.$row;

//$oldfile =  '/data/kara/wyq/bak_bak/bak_m4a'.str_replace(' ','\ ',$row);

$re = rename($oldfile,$newfile);

var_dump($re);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容