拡張子に応じてファイル名を小文字に変換するスクリプト
答え1
複数の拡張に対してこの操作を繰り返し実行するには、zshのzmvを使用できます。
zsh -c '
autoload zmv
ext=(jpg mp3 ogg)
zmv -n "(**/)(*.(#i)(${(j:|:)ext}))" "\$1\${(L)2}"'
(満足したら削除-n
(または交換))。-v
上記のコマンドは、大文字と小文字を区別しないワイルドカードを有効にし、リスト内の要素を結合する(#i)
ために使用されます。${(j:|:)ext}
次のように自分で書くこともできます。$ext
|
zsh -c '
autoload zmv
zmv -n "(**/)(*.(#i)(ogg|jpg|mp3))" "\$1\${(L)2}"'
答え2
あなたの質問がコードにどのようにつながるのか分からないので、これに焦点を当てます。
bash
バージョン4以降では、次の方法を使用してこれを実行できます。
for file in ./*.JPG; do # Iterate over all items in the current directory that match *.JPG
mv "$file" "${file,,}" # Move the file found to a lowercase mapping (this is what the ,, parameter expansion method does)
done
明らかに*.JPG
、あなたが望むものと同等の拡張に置き換えてください。