假设/home/a/data/目录下包含多级子目录,且不存在空目录;通过脚本重命名文件,使其各级目录变为文件名的一部分,不同级别目录以_间隔(忽略重名问题)。
如: 变更为:
/home/a/data/aaa/a.txt /home/a/data/aaa_a.txt
/home/a/data/aaa/b.txt /home/a/data/aaa_b.txt
/home/a/data/aaa/ccc/c.txt /home/a/data/aaa_ccc_c.txt
/home/a/data/bbb/bb.txt /home/a/data/bbb_bb.txt
/home/a/data/bbb.txt /home/a/data/bbb.txt
答案:
#!/bin/bash
for e in `find /home/a/data`
do
mv -f $e /home/a/data/`echo ${e#/home/a/data/}|sed 's/\//_/g'`
done