Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

Bashでスペースを含むファイル名の受け渡しを処理する方法

Linuxには、システムのコマンドを実行するためのデフォルトのシェルBash(別名Bourneagainシェル)があります。ほとんどのプログラマーは、bashが提供する柔軟性と強力なコマンドラインインタープリターのために、cmdよりもbashを好みます。ただし、ほとんどのユーザーは、bashでスペースを含むファイル名の受け渡しを処理しようとすると問題が発生します。これは、bashではスペースがファイル名と同じとは見なされないためです。

Bashでスペースを含むファイル名の受け渡しを処理する方法

スペース付きのファイル名がBashで認識されないのはなぜですか?

Bashで、エスケープなしで複数の単語を入力した場合 文字(\)または引用符 、すべての単語を引数と見なします。これは、「 cd 」でディレクトリを変更するかどうかに関係なく、すべての操作に適用されます。 ‘または‘ catでファイルにアクセスしようとしています ‘コマンド。これらを使用した後に書いたものはすべて引数と見なされます。例:

cat file name.txt
Bashでスペースを含むファイル名の受け渡しを処理する方法

:ファイル名は何でもかまいませんが、この記事では「 file name.txt」を使用します 」を例として。

ここに「 ‘コマンドはファイルを考慮します および名前 単一の引数ではなく、2つの引数として。ただし、エスケープ文字または引用符を使用する場合、bashシェルはそれを単一の引数と見なします。これは「ファイル名.txt」になります。 「。

Bashにスペースを含むファイル名

名前のスペースに使用できるメソッドはいくつかあります。ベストプラクティスは、将来的にファイル名のスペースを避けることです。簡単な方法は、アクセスしようとしているファイルの名前を変更し、スペースを削除することです。他のいくつかの方法では、スペースを含むファイル名に一重引用符または二重引用符を使用するか、スペースの直前にエスケープ(\)記号を使用します。それがどのように機能するかを示すために、適用例を含むメソッドを提供します。

方法1:単一引用符と二重引用符を使用する

  1. Ctrl + Altを押したままにします キーを押してTを押します ターミナルを開く 。
  2. 次に、ディレクトリをファイルのある場所に変更します。
    ドラッグすることもできます) およびドロップ コマンド「cat」の後のターミナル内のファイル ‘、ファイルパス/ディレクトリに自動的に引用符を付けます)

    cd Desktop
    Bashでスペースを含むファイル名の受け渡しを処理する方法

    :デスクトップは、アクセスしようとしている場所に変更できます。

  3. 次のコマンドを入力して、名前にスペースが含まれるテキストファイルを読み取ります。
    cat 'file name.txt'

    または

    cat "file name.txt"
    Bashでスペースを含むファイル名の受け渡しを処理する方法
  4. 一重引用符と二重引用符は同じ結果になります。場合によっては、両方を試して、どちらが機能するかを確認する必要があります。

方法2:バックラッシュエスケープ文字を使用する

  1. Ctrl + Altを押したままにします キーを押してTを押します ターミナルを開く 。
  2. 次のコマンドを使用して、ディレクトリをファイルのある場所に変更します。
    cd Desktop

    :デスクトップの代わりに場所の名前を入力してください。

  3. ここでコマンドを入力し、エスケープを使用します 名前にスペースがある場所の文字:
    cat file\ name.txt
    Bashでスペースを含むファイル名の受け渡しを処理する方法

ボーナス:引用符とエスケープの使用

コマンドでディレクトリを使用している場合、パス全体で引用符を使用すると結果が生じることがあります。これは、「 mv」などの一部のコマンドが原因です。 ‘または‘ cp ‘はパスをファイルソースと見なします 引用が全体として使用される場合。両方のソースの見積もりを提供する必要があります および宛先 個別に、「 cp」のようなコマンド ‘は正しく機能します。以下の例を確認することもできます。これは、パスにエスケープ文字を使用する方がはるかに複雑であり、ユーザーがそれを間違える可能性があることを示しています。

Bashでスペースを含むファイル名の受け渡しを処理する方法
  1. Matplotlibで漸近線/不連続性を処理する方法は?

    matplotlibで漸近線/不連続性を処理するには、次の手順を実行できます- numpyを使用してxおよびyデータポイントを作成します。 軸プロットをオフにします。 xおよびyデータポイントで線をプロットします。 軸を横切る水平線を追加します、x=0。 軸を横切る垂直線を追加します、y=0。 曲線y=1/xの凡例を配置します。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np from matplotlib import pyplot as plt plt.rcParams["figur

  2. Bashエイリアスを使用して7z圧縮を簡素化する方法

    ファイルを縮小するために使用できる方法とツールはたくさんあります。ファイルが占めるスペースを減らすか、ファイルをパッケージとして連絡先に送信します。これらのうち、7-Zipは、優れたパフォーマンスと圧縮レベルの独自の組み合わせとゼロコストのおかげで、ほとんどのユーザーにとってトップの座にランクインしています。 この形式のすべての形式の圧縮は、ここで説明するアプローチよりも複雑になります。少なくとも、圧縮を使用してすべてをフォルダーとそのサブフォルダーに圧縮された「バンドル」にパックするほとんどのユーザーにとって。 それでは、Bashのエイリアスのサポートをコマンドラインバージョンの7zと組