0

ファイル名を変更するスクリプトがあります。ディレクトリ名を取り、ファイル名に追加します。ところで、tr を使用すると文字列が置き換えられます。

0004 ディレクトリの名前 (このディレクトリはスクリプトです) - DSC_1234.jpg

結果0004_1234.jpg

特定のディレクトリにいる場合、スクリプトは機能します。サブディレクトリの名前をまだ変更したかった

#!/bin/bash
CURRENT=`pwd`
BASENAME=`basename $CURRENT`
echo $BASENAME
for i in ./*DSC*;do mv -- "$i" "${i//DSC/$BASENAME}";done
4

2 に答える 2

2

以下はサブディレクトリで機能するはずです。

for i in $(find . -type f); do dir="$(dirname ${i#./})"; mv "$i" "${i//DSC/$(basename $dir)}"; done
于 2013-09-18T12:15:22.713 に答える
0

あなたはおそらくfindあなたのbashスクリプトで使用したいと思うでしょう(そのスクリプトを呼び出しますyour_script.sh):

find $ROOT_DIR -type d -exec your_script.sh \;
于 2013-09-18T12:07:11.910 に答える