他のオペレーティングシステム環境では、スペースを含むファイル名を作成して使用することは、取り返しのつかないほど許容されます。ただし、Linuxオペレーティングシステムドメインに入ると、そのようなファイル名の存在は不便になります。
たとえば、Linuxオペレーティングシステム環境内に次のファイル名が存在することを考慮してください。
これらのファイル名のコマンドラインビューによると、これらのファイル名の処理または移動は、命名規則に空白があるため、不当な不便になります。
さらに、Linuxのファイル名スペースは、文字列%20
としてWebベースのアプリケーションを介してそれらを処理するユーザーにとって不利です。 処理済み/最終ファイル名の一部として含まれる傾向があります。
この記事では、Linuxオペレーティングシステム環境で作業しているときにファイル名のスペースを取り除くのに役立つ有効なアプローチについて説明します。
前提条件
Linuxターミナルまたはコマンドラインインターフェイスの使用法をよく理解してください。実用的な参照の目的で、次のスクリーンキャプチャに示されている間隔のあるファイル名を使用します。
1。特定のファイル拡張子を持つファイル名からスペースを削除する
findコマンドをmvコマンドと組み合わせて、特定のファイル拡張子(.xml
など)を持つファイル名のスペースを削除するという機能的な目的を効果的に実行します。 ファイル。
$ find . -type f -name "* *.xml" -exec bash -c 'mv "$0" "${0// /_}"' {} \;
2。名前変更コマンドを使用したファイル名スペースの置き換え
または、検索を使用する代わりに mv ファイル名スペースをトレースして置換するコマンドでは、単一の名前の変更を使用できます コマンド。これは真珠の拡張機能であり、次のLinuxオペレーティングシステムディストリビューションにインストールできます。
$ sudo apt install rename [On Debian, Ubuntu and Mint] $ sudo yum install rename [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/rename [On Gentoo Linux] $ sudo pacman -S rename [On Arch Linux] $ sudo zypper install rename [On OpenSUSE]
インストールしたら、名前を変更 コマンドは次のように使用できます:
$ rename 's/\s/_/g' ./*.xml
上記のコマンドは、すべての.xml
のスペースを置き換えます アンダースコア付きのファイル。ファイル拡張子に関係なく、すべてのファイル名のすべてのスペースを置き換えるには、次を使用します。
$ rename 's/\s/_/g' ./*.*
3。 Forループとmvコマンドを使用したファイル名スペースの置き換え
このアプローチは、特定の/ターゲットフォルダー/ディレクトリに存在するさまざまなファイル名形式のファイル名スペースを取り除くのに効果的です。 forループ 関数は、ターゲットのディレクトリ/フォルダ内のファイル名スペースをクエリし、その後、それらのファイル名スペースをアンダースコア表記に置き換えます。
このアプローチの次の実装を検討してください。
$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
この記事を始める前は、特にLinuxターミナルからファイルをコピーして移動したり、Webベースのプログラムを介してファイルを処理したりする必要がある場合、ファイル名スペースは厄介でした。このチュートリアルは、そのような不便に対して機能する実行可能なソリューションを提供しました。