zshでは、basename
コマンドを使用して、/区切りのファイルパスからファイル名を取得できます。以下に例を示します:
filepath="/path/to/your/file.txt"
filename=$(basename "$filepath")
echo $filename
このスクリプトは、/path/to/your/file.txt
から file.txt
を抽出します。basename
コマンドは、ファイルパスの最後の部分(つまり、ファイル名)を返します。このコマンドは、zshだけでなく、他のシェルでも使用できます。このコマンドを使用すると、ディレクトリ構造から独立してファイル名を取得できます。これは、スクリプトでファイルを操作する際に非常に便利です。このコマンドを使用すると、ファイルパスからファイル名を簡単に抽出できます。このコマンドは、ファイルパスの最後の部分(つまり、ファイル名)を返します。このコマンドは、zshだけでなく、他のシェルでも使用できます。
ファイル名から拡張子を取り除くには、basename
コマンドの -s
オプションを使用できます。このオプションは、指定したサフィックス(この場合はファイルの拡張子)を取り除きます。以下に例を示します:
filepath="/path/to/your/file.txt"
filename=$(basename "$filepath")
filename_without_ext=$(basename "$filepath" ".txt")
echo $filename_without_ext
このスクリプトは、/path/to/your/file.txt
から file
を抽出します。ただし、この方法では拡張子 .txt
を事前に知っている必要があります。拡張子が不明な場合は、以下のようにパラメータ展開を使用できます:
filepath="/path/to/your/file.txt"
filename=$(basename "$filepath")
filename_without_ext="${filename%.*}"
echo $filename_without_ext
このスクリプトも、/path/to/your/file.txt
から file
を抽出します。ここで、${filename%.*}
は、filename
の値の末尾から最初の .
までを削除します。これにより、任意の拡張子を持つファイル名から拡張子を取り除くことができます。これらの方法を使用すると、ファイル名から拡張子を簡単に取り除くことができます。これは、スクリプトでファイルを操作する際に非常に便利です。