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

BashスクリプトでのLinuxDirnameコマンドの使用

Linuxのdirnameコマンドは、最後のコンポーネントが削除されたファイルパスを出力します。これにより、基本的にファイルパスからディレクトリパスが得られます。

これは、長いファイルパスからディレクトリパスを抽出するbashスクリプトで特に役立ちます。

dirnameコマンドは、basenameコマンドを補完します。 basenameコマンドはパスからファイル名を抽出し、dirnameはディレクトリパスを抽出します。

いくつか例を挙げてお見せしましょう。

dirnameコマンドの例

dirnameコマンドは単純な構文です。

dirname OPTION PATH

ファイルの絶対パスでdirnameコマンドを使用すると、ディレクトリパスが得られます:

dirname /home/user/data/filename.txt
/home/user/data

basenameコマンドと同様に、dirnameコマンドも実際にはばかげています。実際にはファイルパスを認識しません。スラッシュ(/)を探し、最後のスラッシュの前にあるものをすべて出力します。 基本的に、/を含む任意の文字列を指定でき、それで機能します。

たとえば、ここではファイル名を含まないランダムな文字列を使用しています。それでも同じように機能し、最後の/とその後のテキストを削除する文字列を出力することがわかります。

パスにスラッシュ(/)が含まれていない場合は、現在のディレクトリを示すドット(。)が出力されます。

複数のパスでdirnameを使用することもできます。新しい行の各パスの出力を返します:

-zオプションを使用して、出力がNULL文字で区切られた同じ行の結果を取得できます。

bashスクリプトでdirnameを使用する

dirnameコマンドの例をいくつか示しました。 bashスクリプトでのdirnameの使用について話しましょう。

ファイルパス変数があり、ファイルを含むディレクトリへのパスを取得するとします。これは単純なスクリプトである可能性があります:

pathname="/home/dir/data/filename"

result=$(dirname "$pathname")

echo $result

前述したように、dirnameコマンドはbasenameコマンドで補完されます。 dirnameとは異なり、basenameコマンドはパスの最後のコンポーネントのみを出力します。

このチュートリアルが気に入っていただけたでしょうか。いつものように、コメントセクションで質問したり提案したりしてください。

記事が気に入りましたか?それを共有して、私たちの成長を助けてください:)


Linux
  1. 自動化のためのBashの使用

  2. BashスクリプトでのLinuxスリープコマンドの使用

  3. BashスクリプトでのLinuxBasenameコマンドの使用

  1. Linuxでのripgrep(rg)コマンドの使用

  2. Linux での dmsetup コマンドの使用例

  3. mv コマンドを使用して Linux でフォルダーを移動する

  1. LinuxでBashの履歴をクリアする方法

  2. Bashでコマンドが見つかりません修正されました

  3. Linuxのsh(bashではない)のコマンドプロンプトで現在のパスを表示するには?