以下のコマンドを実行して、小文字のファイル/ディレクトリに置き換えます。 _などさまざまな操作が可能です。問題は、ディレクトリの名前を最初に変更しようとしているように見えて、そのディレクトリの下にあるファイルが見つからないということです。ディレクトリ内のすべてのファイルの名前を変更してから、ディレクトリ自体を再帰的に変更する方法はありますか?例えばディレクトリ名前にファイル名を変更する
- directory1の
- FILE1
- FILE2
- directory1の
- FILE1
- FILE2
- directory2
- file1の
- directory2
- file1の
- FILE2
私のコードは
ですここwhile IFS= read -rd '' entry; do
entry="${entry#./}" # strip ./
if [[ -d $entry ]]; then
rename 'y/A-Z/a-z/; s/ /_/g; s/_-_/-/g; s/sometext//g; s/_extras/-extras/g' "$entry"
else
rename 'y/A-Z/a-z/; s/\.(?=.*\.)/_/g; s/ /_/g; s/_-_/-/g; s/sometext//g; s/_extras/-extras/g' "$entry"
fi
done < <(find . -iname '*' -print0)
これを達成するには、再帰を使うか、ファイル名を最初に変更してからディレクトリ – dganesh2002
を使う必要があります。リストを作成してディレクトリ/ファイルの深度については 'find'を使用します。 – yacc