現在のフォルダ内のすべてのアーカイブを抽出する必要があります。私がやっていることは、正しく名前を付けられたすべてのものだけを抽出しますが、アーカイブにはそれらの上に拡張された拡張子を持つことができます。間違った拡張子でもすべてのアーカイブをどのように抽出しますか?
file.tar.gvz
またはfile.tar.potatogz
またはfile.sss.faz
gunzip *.tar.gz >/dev/null 2>/dev/null
echo $?
echo "gzip"
tar -xvf *.tar >/dev/null 2>/dev/null
echo $?
echo "tar"
unzip '*.zip' >/dev/null 2>/dev/null
echo $?
echo "zip"
編集: fileコマンドが行くための正しい方法のように思えるが、ネストしたループで動作させることはできません。ディレクトリループの外側にあるときはうまく動作します。
for D in *; do
if [ -d "${D}" ]; then
cd $D
bool=false
for files in *
do
type=$(file -b $files | awk '{printf $1;}')
echo "next is type"
echo $type
done
cd..
done
gzip( 'file'コマンド)タイプのファイルをテストしてから、gunzipそれらのものだけ? – Dinesh
ファイルコマンドを使用しようとしましたが、出力を変数に格納しようとしました "エラー:開くことができません" これは正しくありません。 type = $(file -b $ files | awk '{ print $ 1;} ') – M2bandit
*を解凍しようとすると、zipファイル以外のファイルは解凍されません。 –