フォルダから拡張子を削除または名前を変更する方法

フォルダから拡張子を削除または名前を変更する方法

次のフォルダがいくつかあります。[Eメール保護][Eメール保護][Eメール保護]。名前をname1、name2、name3などに変更したいです。その逆の場合、name1、name2、name3の場合、次に移動できることがわかりました。[Eメール保護]実行して

find . -type d -name "*" -depth 1 | while read d; do  mv "$d" "[email protected]"; done

しかし、どうやってその逆にすることができますか?[Eメール保護]==>名前1

答え1

Bashのようなシェルを使用してください。

for d in ./*@*/; do mv "$d" "${d%@*}"; done

for d in ./*@*/名前に「@」が含まれている現在のディレクトリのすべてのディレクトリを繰り返します。${d%@*}変数の値からd最後の「@」とそれに続くすべての値を引いた値を提供するパラメータ拡張。

もっと厳しくすることもでき、例えば

for d in ./*@domain.com/; do mv "$d" "${d%@*}"; done

関連情報