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

Linuxのベースネームコマンド

basename は、指定されたファイル名からディレクトリと末尾のサフィックスを削除するコマンドラインユーティリティです。

basenameの使用 コマンド#

basename コマンドは2つの構文形式をサポートします:

basename NAME [SUFFIX]
basename OPTION... NAME...

basename ファイル名を取得し、ファイル名の最後のコンポーネントを出力します。オプションで、末尾のサフィックスを削除することもできます。これは、いくつかのオプションのみを受け入れる単純なコマンドです。

最も基本的な例は、先頭のディレクトリを削除してファイル名を印刷することです。

basename /etc/passwd

出力にはファイル名が含まれます:

passwd

basename コマンドは、末尾の /を削除します 文字:

basename /usr/local/basename /usr/local

どちらのコマンドも同じ出力を生成します:

local
local

デフォルトでは、各出力行は改行文字で終わります。 NULで行を終了するには 、 -zを使用します (-ゼロ )オプション。

複数の入力#

basename コマンドは、引数として複数の名前を受け入れることができます。これを行うには、 -aを使用してコマンドを呼び出します。 (-複数 )オプションの後に、スペースで区切られたファイルのリストが続きます。

たとえば、 / etc / passwdのファイル名を取得するには および/etc / shadow 実行します:

basename -a /etc/passwd /etc/shadow
passwd
shadow

末尾のサフィックスの削除#

ファイル名から末尾のサフィックスを削除するには、サフィックスを2番目の引数として渡します。

basename /etc/hostname name
host

通常、この機能はファイル拡張子を取り除くために使用されます:

basename /etc/sysctl.conf .conf
sysctl

末尾のサフィックスを削除する別の方法は、 -sでサフィックスを指定することです。 (-suffix =SUFFIX )オプション:

basename -s .conf /etc/sysctl.conf
sysctl

この構文形式を使用すると、複数の名前から末尾のサフィックスを削除できます。

basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf
sysctl
sudo
例番号

次の例は、 basenameの使用方法を示しています bash内のコマンドfor looptoは、ファイル拡張子を「.jpeg」から「.jpg」に置き換えることにより、現在のディレクトリで「.jpeg」で終わるすべてのファイルの名前を変更します。

for file in *.jpeg; do
    mv -- "$file" "$(basename $file .jpeg).jpg"
done

basename を呼び出す代わりに、シェルとしてbashを使用している場合 、シェルパラメータ拡張を使用して末尾の拡張を削除することができます。

結論#

basename コマンドは、名前から先頭のディレクトリと末尾のサフィックスを削除します。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Linuxmvコマンド

  2. Linuxduコマンド

  3. Linuxipコマンド

  1. Linuxifconfigコマンド

  2. Linuxタイムコマンド

  3. Linuxcdコマンド

  1. LinuxでのPingコマンド

  2. Linuxウォッチコマンド

  3. LinuxのXargsコマンド