あなたが探している正確にわかりません。ファイルがtar.gz
で終わるかどうかを確認しようとしていますか?
if [[ $filename == *.tar.gz ]]
then
echo "$filename is a gzipped compressed tar archive"
else
echo "No, it's not"
fi
あなたはそれがtar.gz
、tar.bz2
あるいは単なるtar
のかどうかサフィックスを見つけようとしていますか?
$suffix=${file##*.tar}
if [[ "$suffix" = "$file" ]]
then
echo "Not a tar archive!"
else
suffix="tar.$suffix"
echo "Suffix is '$suffix'"
fi
はサフィックスに興味がありますが、それはtar.gz形式だ場合、あなたは接尾辞ことを検討します:
filename='/root/abc/xzy/file_tar_src-5.2.8.23.tar.gz'
suffix=${filename##*.} #This will be gz or whatever the suffix
rest_of_file=${filename%%.$suffix} #This is '/root/abc/xzy/file_tar_src-5.2.8.23.tar'
# See if the rest of file has a tar suffix.
# If it does, prepend it to the current suffix
[[ $rest_of_file == *.tar ]] && suffix="tar.$suffix"
echo "The file suffix is '$suffix'"
何ファイル名が '.tar.bz2'で終わると起こりますか?それでも 'tar.gz'が必要なのか、' .tar.bz2'が必要ですか? 'tar.gz'だけを使用しているのであれば、拡張子を取得する必要はありません。それは 'tar.gz'だと分かっています。 'file.c'はどうなりますか?その拡張子は '.c'または' file.c'ですか、名前にドットが1つしかないので無効ですか?接頭辞、非拡張子が必要ですか?それとも、後ろの 'tar.gz'を除いて全てを得るのですか?あなたはターミナルのドットが欲しいですか? –