Unix系统中删除文件明中的空格的方法

      今天临校师兄QQ上说有没有批量删除文件名中的空格的方法。这类问题像我这等懒人加闲人是最喜欢的了。于是满口答应下来说试试看。
      我们的网络中心有一台FreeBSD服务器供学校的Unix爱好者登录学习,兼之网络中心可以在里面物色新的成员。这个服务器是由我来维护的,招新人也是由我负责的。
      为了便于管理和教学,我计划在/home目录下间了一个pub目录,然后再在每个用户的目录下建一个符号连接。这样所有的资料或者考题等等的都可以放到pub里。可是那么多的用户不可能一个个的去建符号连接吧?
      当时的解决方法是这样,从/etc/passwd中读出每个用户的主目录,然后在用一个for循环来进行创建符号连接的动作,整套命令可以一次完成:
#for homedir in `grep 'home' /etc/passwd |awk -F: '{print $6}'`;do ln -s /home/pub $homedir/pub;done;
      我想上次完成任务这么轻松,可这次到命令行一看才觉得有一点紧张了。本来去掉空格用sed就可以,可把文件名传递给sed后sed会去处理文件的内容而不是文件名。还有通过变量传递文件名后,shell就会把空格分成的每一段当成不同的文件来处理,摆弄了半天,终于用下面的命令搞定
     export IFS=":";for i in $(ls);do mv $i `echo $i|sed 's// //g'`;done;export IFS=" "
     关键指出在于使用了“:”作为分割符,这样shell才不会把文件中的空格断开。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值