递归遍历目录。。

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
yangsos123
帖子: 331
注册时间: 2010-01-11 20:15
送出感谢: 0
接收感谢: 0
联系:

递归遍历目录。。

#1

帖子 yangsos123 » 2011-03-12 10:37

代码: 全选

#! /bin/sh
find $PWD | while read i
do
    if [ -d $i ]; then
        continue
    fi
    test=`echo $i | grep '.mp3`

    if [ "$test" = "" ]; then
        mv $i $i.mp3
    fi
done
上次说Banshee无法管理音乐库,然后发现问题居然是音乐文件后缀名都没了。。(Rhythmbox。。您老威武//)
然后想写个脚本修改,发现不会写递归遍历所有子目录。。。求教~ :em06

代码: 全选

Art is always explosion~~
[/b][/u]
http://allenalan.wordpress.com/
====Allen Alan=====
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
送出感谢: 5 次
接收感谢: 13 次
联系:

Re: 递归遍历目录。。

#2

帖子 tangboyun » 2011-03-12 12:35

代码: 全选

find . -type f | 
while read i
do
   mv $i $i.mp3
done
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
头像
lilydjwg
论坛版主
帖子: 4165
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 递归遍历目录。。

#3

帖子 lilydjwg » 2011-03-14 12:43

代码: 全选

rename 's/$/.mp3/' **/*(.)
(zsh only)
头像
yangsos123
帖子: 331
注册时间: 2010-01-11 20:15
送出感谢: 0
接收感谢: 0
联系:

Re: 递归遍历目录。。

#4

帖子 yangsos123 » 2011-03-15 20:17

Thx~(mv不知为何总是报错,不知和空格是否有关(""无效),还是rename解决问题~ :em05

代码: 全选

Art is always explosion~~
[/b][/u]
http://allenalan.wordpress.com/
====Allen Alan=====
回复

回到 “Shell脚本”