LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: coolend

如何批量去掉文件名中的空格[已解决]

[复制链接]
发表于 2004-3-21 01:47:00 | 显示全部楼层
感谢javalee的解释..thx
发表于 2004-3-22 22:33:12 | 显示全部楼层
谢谢javalee兄指点, 输入后结果:
[root@knoppix 07:29 AM #/home/yongjian/shell_scripts ] ls|while read i; do echo $i | grep -q " " && mv "$i" "$(echo $i|tr -d ' ')";done
mv: cannot stat `\033[00m\033[00;34m.\033[00m/      \033[00;34m..\033[00m/  \033[00maa\033[00m  \033[00;34mimportant_scripts\033[00m/  \033[00;34mmass_rename\033[00m/  \033[00;34msed_testing\033[00m/  \033[00mtest 1\033[00m  \033[00mtest 2\033[00m': No such file or directory
mv: cannot stat `\033[00mtest 3\033[00m': No such file or directory
猜测是系统变量的配置有问题, 导致shell对变量的解释出错, 但到底是怎么回事, 还请指点.
发表于 2004-3-22 22:50:07 | 显示全部楼层
最初由 yongjian 发表
谢谢javalee兄指点, 输入后结果:
[root@knoppix 07:29 AM #/home/yongjian/shell_scripts ] ls|while read i; do echo $i | grep -q " " && mv "$i" "$(echo $i|tr -d ' ')";done
mv: cannot stat `\033[00m\033[00;34m.\033[00m/      \033[00;34m..\033[00m/  \033[00maa\033[00m  \033[00;34mimportant_scripts\033[00m/  \033[00;34mmass_rename\033[00m/  \033[00;34msed_testing\033[00m/  \033[00mtest 1\033[00m  \033[00mtest 2\033[00m': No such file or directory
mv: cannot stat `\033[00mtest 3\033[00m': No such file or directory
猜测是系统变量的配置有问题, 导致shell对变量的解释出错, 但到底是怎么回事, 还请指点.

晕~~~, 把你的目录下的文件贴出来,
发表于 2004-3-23 07:59:16 | 显示全部楼层
其实上帖中已经贴出:
[root@knoppix 04:56 PM #/home/yongjian/shell_scripts ] ls
./  ../  aa  important_scripts/  mass_rename/  sed_testing/  test 1  test 2  test 3
"test 1", "test 2", "test 3" 分别是三个非规则文件名, aa是一个规则的文件名, /结尾的3个是目录.

[root@knoppix 04:56 PM #/home/yongjian/shell_scripts ] ls -la
total 20
drwx------    5 yongjian yongjian     4096 Mar 19 12:08 ./
drwx------   48 yongjian yongjian     4096 Mar 22 16:28 ../
-rw-r--r--    1 root     root            0 Mar 19 12:00 aa
drwx------    2 yongjian yongjian     4096 Mar 12 13:55 important_scripts/
drwx------    2 yongjian yongjian     4096 Mar 16 07:48 mass_rename/
drwx------    2 yongjian yongjian     4096 Mar 17 10:51 sed_testing/
-rw-r--r--    1 root     root            0 Mar 19 12:00 test 1
-rw-r--r--    1 root     root            0 Mar 19 12:00 test 2
-rw-r--r--    1 root     root            0 Mar 19 12:00 test 3

文件是touch的空文件.
发表于 2004-3-23 11:37:21 | 显示全部楼层
用 ls --color=no 代替第一个ls:
ls --color=no|while read i; do echo $i | grep -q " " && mv "$i" "$(echo $i|tr -d ' ')";done
发表于 2004-11-30 18:03:50 | 显示全部楼层
这贴很实用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表