[解決済み】Linuxですべてのフォルダとファイルの名前を小文字に変更するにはどうすればいいですか?
2022-04-08 18:04:13
質問
フォルダツリー全体の名前を再帰的に変更し、どこにも大文字が現れないようにしなければなりません(C++のソースコードですが、それは重要ではないはずです)。
CVSやSubversionのバージョン管理ファイル/フォルダーを無視するとボーナスポイントがあります。シェルはどのLinuxボックスでも利用できるはずなので、望ましい方法はシェルスクリプトでしょう。
ファイル名の変更の詳細については、いくつかの有効な議論がありました。
-
同じ小文字の名前のファイルは上書きされるべきだと思う。それはユーザーの問題だ。大文字小文字を無視するファイルシステムでチェックアウトした場合、最初のものを後者で上書きすることもあるでしょう。
-
私ならA-Z文字を考慮してa-zに変換します。それ以外は(少なくともソースコードでは)問題を呼び起こすだけです。
-
このスクリプトはLinuxシステム上でビルドを実行するために必要なものなので、CVSやSubversionのバージョン管理ファイルの変更は省略されるべきだと思います。結局のところ、それはスクラッチチェックアウトに過ぎないのです。多分、"export"がより適切でしょう。
解決方法は?
を使用した簡潔なバージョンです。
"rename"
コマンドを使用します。
find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
これにより、ディレクトリがファイルより先にリネームされる問題や、ファイルを存在しないディレクトリに移動させようとする問題を回避できます (例
"A/A"
を
"a/a"
).
を使用しない、より冗長なバージョンもあります。
"rename"
.
for SRC in `find my_root_dir -depth`
do
DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
if [ "${SRC}" != "${DST}" ]
then
[ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" || echo "${SRC} was not renamed"
fi
done
追伸
後者では、moveコマンドをより柔軟に使うことができます(例えば。
"svn mv"
).
関連
-
[解決済み】CentOSのエラー - sudo: effective uid is not 0, is sudo installed setuid root?
-
[解決済み] という記号がありますが、これはどういう意味ですか?
-
[解決済み] ls: 読み込みディレクトリ .: 入出力エラー [閉じた].
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ハイフン(-)で始まるファイル名を処理する方法は?
-
[解決済み] pkg-configが見つからないエラー
-
[解決済み] sysrootとは何ですか、そしてどのように作成しますか?
-
[解決済み] tar: エラーは回復不可能:現在終了中
-
[解決済み] svn diffコマンドの使用
-
[解決済み] insmod エラー: './hello.ko' を挿入: -1 無効なモジュール形式".
-
[解決済み] アセンブリの制約
-
[解決済み] 次のコマンドの -print0 の意味を教えてください。
-
[解決済み] CMakeエラーです。このプロジェクトでは次の変数が使用されていますが、NOTFOUND に設定されています。
-
[解決済み] Bashで文字列を小文字に変換する方法は?