ウェブサイト検索

ベース名の逆 – バッシュ


Bashでは、basenameは特定のパスやURLからファイル名を抽出するために一般的に使用されます。ただし、特定のファイルパスからディレクトリパスを抽出する必要がある状況もあります。これがdirnameコマンドが登場するところです。これはbasenameの逆です。この記事では、basenameの逆とは何か、そしてそれをBashでどのように使用するかを説明します。

ベースネームの逆

dirnameコマンドは、指定されたファイルパスからディレクトリパスを抽出するために使用されます。このコマンドは単一の引数を取り、その引数はディレクトリパスを抽出したいファイルパスです。以下は、dirnameを使用してファイルパスからディレクトリパスを抽出するBashスクリプトの例です:

#!/bin/bash
path="/home/aaliyan/Documents/myfiles/bashfile1.sh"
dir=$(dirname "$path")
echo "Directory path: $dir"

このスクリプトでは、ファイルパスを含む変数pathを定義し、次にdirnameコマンドを使ってpath変数からディレクトリパスを抽出し、それをdirという新しい変数に格納します。最後に、echoコマンドを使ってディレクトリパスをコンソールに出力します。このスクリプトを実行すると、次の出力が表示されるはずです:

dirnameコマンドは、スクリプトと同じディレクトリにあるファイルのディレクトリパスを抽出するためにも使用できます。また、realpathコマンドを使うこともできます。

#!/bin/bash
path="./bashfile1.sh"
dir=$(realpath $(dirname "$path"))
echo "Directory path: $dir"

スクリプトは最初に、変数パスをbashfile1.shの相対ファイルパスに設定します。次に、スクリプトはdirnameコマンドを使用してファイルパスからディレクトリパスを抽出します。これにより、相対ディレクトリパスが返されます。

相対パスを絶対パスに変換するために、スクリプトはrealpathコマンドを使用します。このコマンドは相対パスを引数として受け取り、絶対パスを返します。最後に、スクリプトはechoコマンドを使用して絶対ディレクトリパスを表示します。

結論

dirnameコマンドは、与えられたファイルパスからディレクトリパスを抽出するためにBashで使用されます。このコマンドは、Bashスクリプト内でファイルパスを操作する必要がある状況において役立ちます。dirnameをbasenameなどの他のBashユーティリティと組み合わせることで、ファイルパスの操作が簡単になり、ファイルに対して複雑な操作を実行することができます。