linux批量去除文件名中的空格

本文介绍了一个用于批量删除文件名中空格的简洁Shell脚本。通过使用`ls`命令结合`while`循环与`mv`命令,该脚本能够有效地去除文件名中的空格字符。

试了好多都不行,最后找到一个简洁的

  1. ls|while read i;do  
  2.     mv "$i" $(echo $i|tr -d ' '2>/dev/null  
  3. done 

转载于:https://my.oschina.net/u/298/blog/134324

去除文件名空格的方法因操作系统不同而有所差异,以下是不同系统下的解决办法: ### Windows系统 - **使用批处理文件**:在想要删除空格的文件夹中,鼠标右键新建一个文本文档,把文本文档的后缀名改为`.bat`,点击“是”;接着鼠标右键选择编辑这个文本文档,将以下代码复制粘贴到文本文档当中,保存并运行`.bat`文件。不过如果图片名字里包含`()` 或者 【空格 】或 【中文字符 】或 一些【特殊符号】会出现引入不生效的问题。 ```batch @echo off setlocal enabledelayedexpansion for %%F in (*) do ( set "filename=%%~nF" set "extension=%%~xF" rem 移除空格和括号 set "filename=!filename: =!" set "filename=!filename:(=!" set "filename=!filename:)=!" rem 生成新文件名 set "newName=!filename!!extension!" rem 执行重命名 if not "!filename!_!extension!"=="!newName!" ( echo Renaming "%%F" to "!newName!" ren "%%F" "!newName!" ) ) endlocal ``` - **另一种批处理文件方式**:在文件夹中新建`txt`文档,复制以下代码,保存为`bat`文件,可批量去除文件名中的空格。 ```batch @echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /s/b *.*') do ( set "foo=%%~nxi" set foo=!foo: =! set foo=!foo: =! ren "%%~fi" "!foo!" ) exit ``` - **通过CMD命令结合Excel**:运行CMD调出DOS窗口,先用`CD C:\XXX`定位到文件所在文件夹`XXX`,再输入命令`dir /b>rename.xls`,会在`XXX`文件夹里生成一个`rename.xls`文档,里面列出了该文件夹中的所有文件名;从B列修改为C列,在Excel的D列输入`="ren “&B1&” "&C1` ,注意要确保最后生成的命令是`ren 空格文件名 空格文件名`,命令多了空格或者其他可能会无法运行成功;将D列复制到新建的记事本中,另存为`bat`格式(后缀改为`.bat`),并选择编码类型为“ANSI”(默认UTF - 8),双击`bat`文件运行,即可完成批量修改文件名[^3][^4]。 ### Linux系统 在Debian和衍生产品(包括Ubuntu)以及与perl一起提供的大多数非Linux系统下,`rename`命令是一个不同的命令,它将Perl表达式作为参数而不是要替换的字符串和替换字符串。可使用`rename.ul`(在Debian和衍生物下),或者使用Perl重命名[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值