方法:ファイル名のスペースをアンダースコアに置き換えます

シェルLinux

Unix環境では、コマンドインタープリターを使用して多くの作業が行われます。実際、多くのシステムにはデスクトップ環境さえインストールされていません。 したがって、、Linuxでは、通常、ターミナルから多くの作業を行います。 ファイル名とディレクトリ名を操作する場合、名前にスペースが含まれていると難しい場合があります。 これらの小さな問題を回避する方法を知っていることは問題ではありませんが、それらのスペースがない方が快適であることは事実です...

わからない場合 ターミナルからスペースを含む名前を使用する方法、またはこれらのスペースを簡単に削除したい場合この記事では、GNU / Linuxで日常的に作業するときに、ユーザーエクスペリエンスを可能な限り快適にするために必要なすべてを学びます。 これからは、名前のスペースが邪魔になりません...

スペースの操作方法

Linux名前空間

名前のスペースの操作は簡単なので、最初にディレクトリまたはファイルをで使用する方法を示します。 名前にスペース。 したがって、これに問題があるすべての人は、それを使用することを学び、スペースのある名前に出くわす恐れを失うことができます。

  • 名前にスペースがあることを示します、スラッシュまたはバックスラッシュ、つまり\を使用できます。 たとえば、書き込もうとしている名前が画像「RISC-V docs」に表示されている名前である場合、「RISC-V \ docs」(引用符なし)と書くことができます。 このようにして、Bashにそれがスペースであり、スペースで区切られたそのコマンドのいくつかのパラメーターを入力したことを通知します。
  • 使用することもできます 二重引用符«» 名前をスペースで囲み、それらが個別のパラメーターではないが、同じ名前であることをシェルに示します。 たとえば、cdを使用した前の例では、スペースを使用してそのディレクトリに移動する場合は、次を使用できます。
cd "RISC-V docs"

  • 別のトリック 名前の最初の文字の入力を開始し、Tabキー(Caps Lockのすぐ上にあるキー)を押します。 そうすれば、名前は自動入力されます。 同じように始まる名前が複数ある場合、たとえば「RISC-V docs」があり、「RISC-V isa」が機能しない場合、これは機能しません。 はい、«RISC-Vドキュメント»と«RISC-Iドキュメント»がある場合は機能します。文字を入力するとすぐに、その名前がわかるからです...

今これ あなたはそれが実用的でないと思うかもしれません、あるいはあなたはそれが好きではないかもしれません スペースで作業するたびにこれを行う必要があります。 したがって、それらを排除したい場合は、次のセクションを読むことができます...

スペースを置き換える方法

スペースをアンダースコアに置き換えるLinux

グラフィック環境の場合、スペースを含む名前の方がファイルに名前を付ける方が快適で快適なのは事実です。 しかし、それはターミナルにとってそれほど実用的ではありません。 したがって、前のセクションの手順に従わずに必要な場合 至福の空間を一気に取り除く、次の手順に従うことができます。

  • スペース付きの名前が見つかったディレクトリに移動します 任意の文字に置き換えたいこと。 この場合、アンダースコアを使用しましたが、その記号を他の記号に置き換えることができます。コマンドを変更するだけです。
  • ディレクトリ内に入ると、次のコマンドを使用できます。 すべての名前空間を_に変更します。 スペースを保持したい名前がある場合は、このコマンドによってすべてが変更されることを考慮する必要があるため、注意してください。
for file in *; do mv "$file" `echo $file | tr ' ' '_'`; done

  • 一つずつ行くこれは実用的ではありませんが、すべての名前のスペースを自動的に置き換えるのではなく、単一の名前のスペースのみを置き換える場合は、次のコマンドを使用できます。
mv nombre\ con\ espacios nombre_sin_espacios

  • 他の選択肢は スクリプトを使用する スペースをアンダースコアに置き換えたいときはいつでも呼び出すことができます。 したがって、必要なたびにコマンドを記述しなくても、任意のディレクトリで実行できます。 そのためには、お気に入りのテキストエディタを使用して、たとえばspaceskiller.shというファイルを作成し、コンテンツを保存して実行権限を付与し、$ PATH環境変数にあるパスに入力する必要があります(例:/ usr / bin)であるため、.shが存在するパスを指定することなく、その名前を呼び出すだけで済みます。 そうは言っても、スクリプトの内容は次のようになります。
<pre>#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo no se renombró \""$f"\" porque \""$new"\" ya existe
    else
      echo renombrando "$f" a "$new"
    mv "$f" "$new"
  fi
fi
done</pre>

スクリプトを選択して$ PATHディレクトリのいずれかに入力した場合、ディレクトリ内にいて、スペースをアンダースコア(または変更した場合は他の文字)に置き換えるたびに、次のことを行うだけで済みます。 ラン:

./spaceskiller.sh

私はこのチュートリアルであなたを助けたことを願っています、 コメントを残すことができます 質問や貢献があれば..。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   アンドレス

    ありがとうございます、あなたのスクリプトはとても便利です