GNU/Linux >> Linux の 問題 >  >> Linux

Linux シェルを使用してスペースを含むファイルの名前を変更するにはどうすればよいですか?

スペースをエスケープします。 Spring\ 2011 、または引用符を使用します。 'Spring 2011' .将来的には、*NIX でスペースを含むファイル名を使用することは、通常はお勧めできません。

rename を持っている場合 、これを使用できます:

rename ' ' '_' [filenames...]

お使いのマシンに名前変更コマンドがある場合、現在の作業ディレクトリ内のすべてのファイル/ディレクトリ内のすべてのスペースがアンダースコアに変更されます:

rename 's/ /_/g' *

rename がない場合 またはシェルのみを使用することを好む:

for f in *\ *; do mv "$f" "${f// /_}"; done

内訳:

  • *\ * for の入力として、名前にスペースが含まれるすべてのファイルを選択します ループ。パターン *X* X のすべてのファイルを選択します それらの名前と特殊文字スペースについては、スラッシュでエスケープして、bash が異なる引数を分離するものとして処理しないようにする必要があります。
  • "$f" 前後の引用符 ファイル名にスペースがあることがわかっているため、重要です。そうしないと、mv への 2 つ以上の引数として表示されます。 .
  • ${f//str/new_str} bash 固有の文字列置換機能です。 str のすべてのインスタンス new_str に置き換えられます .

Linux
  1. Linuxでファイルの名前を変更する方法

  2. Linuxのfindコマンドの使用–例を使用した使用法

  3. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  1. 3 つの方法を使用して Linux で複数のファイルの名前をまとめて変更する方法

  2. BASH シェルが Linux で構成ファイルをロードする方法

  3. Linuxシェルスクリプトで正規表現を使用してファイルを検索する方法

  1. Linuxでgocryptfsを使用してファイルを暗号化する方法

  2. Linuxの基本:Wgetを使用してシェルにファイルをダウンロードする方法

  3. Linuxでtarコマンドを使用してファイルを圧縮および抽出する方法は?