wjd*_*jdp 2 find shell-script for
尝试在大型音乐收藏中进行从 M4A 到 OGG 的大规模转换,我有:
#!/bin/sh
for i in `find /home/family/Music -name *.m4a -print0`
#do ffmpeg -i "$i" -acodec libvorbis -aq 6 -vn -ac 2 "$i.ogg";
do echo $i
done
Run Code Online (Sandbox Code Playgroud)
所有文件的名称中都会有空格,上面的输出显示了一个像这样的文件:
/home/family/Music/The
Kooks/Inside
In
_
Inside
Out/06
You
Don't
Love
Me.m4a
Run Code Online (Sandbox Code Playgroud)
每个空格都标记一个新行,我认为-print0
会解决这个问题吗?
使用while
连同循环read -d '' -r
:
find /home/family/Music -name '*.m4a' -print0 | while read -d '' -r file; do
echo "$file"
done
Run Code Online (Sandbox Code Playgroud)