Linux:CLIで大文字と小文字が異なる同じ名前のフォルダをマージする方法(BASHを好む)

Linux:CLIで大文字と小文字が異なる同じ名前のフォルダをマージする方法(BASHを好む)

私のLinux NASには、以下の場合を除き、同じ名前のフォルダが複数あります。

  • /データベース
  • /データ/ライブラリ/事前設定
  • /データ/ライブラリ/事前設定
  • /データ/ライブラリ/事前設定
  • /マージ/読む
  • /マージ/読む
  • /マージ/読む
  • /マージ/読む
  • など。

理想的ではありませんが、Linuxでは大丈夫です。ただし、Windows PCをサポートするNASにあるため、クライアントPCは混乱し、実際にはフォルダの1つだけが表示されます。すべての変更は…

あまりにも多く、これらのフォルダを自動的にマージしたいと思います。

結局のところ、フォルダ名ごとに1つだけを使用することは究極の目標であるため、「各単語の最初の文字を大文字で表示する」形式が優先されますが、リモートで可能であれば、大文字と小文字は実際には重要ではありません。

(注:このフォルダには競合するファイル名が含まれる可能性がありますが、現在の内容には次のようなファイルが多いため、議論後に内容が異なる同じ名前のファイルがある可能性があるというリスクを負うことになります。とにかく簡単にアクセスできません!)

これを行うための事前作成されたCLIツール(またはBASHスクリプト)はありますか?

ベストアンサー1

そのため、最も重要なサブフォルダに対して大文字と小文字を区別しない別のデータセットを作成し(元のサブフォルダの名前を変更した後)、rsyncを実行してデータを新しいデータセットに移動しました。

今、すべてがよく調和しており、最終結果に非常に満足しています。 AFAICT私たちは関連データを失っていませんでした... ; find . | sort -f | uniq -Di)

Sambaが大文字と小文字を区別しているため、Samba共有ではこれを実行しないことを提案している人もいますが、彼らが言及できる最悪の問題は、ファイル名を「Readme.txt」から「ReadMe、txt」に変更できないということです。です。ファイルが既に存在すると報告します...修正は明らかです。 「Read Me.txt」などの他の名前を指定するか、必要に応じて名前を変更する前に、一時的に「readme1.txt」に名前を変更してください。以下で大文字と小文字を区別しないFSを使用しないと、答えはありません。それが私の問題です!

おすすめ記事