仮定/ホーム/ / 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
/ホーム/ A /データ/ AAA / CCC / C.txt /home/a/data/aaa_ccc_c.txt
/home/a/data/bbb/bb.txt /home/a/data/bbb_bb.txt
/ホーム/ A /データ/ 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