.jpg.gz
私のディレクトリに解凍する必要があるファイルがたくさんあります。
解凍コマンドは次のとおりです。
tar -xzvf FileNameHere.jpg.gz
しかし、ディレクトリ内のファイルを再帰的に解凍するフラグはありますか?圧縮されたファイルが100を超えるため、各ファイルの圧縮を手動で解凍したくありません。
また、SSHを介してホスティングサービスに接続しているため、次のコマンドのみを使用できます。
arch
bzip2
cal
cksum
cmp
cp
crontab
basename
cd
chmod
ls
date
df
du
dos2unix
unix2dos
file
getfacl
gzip
head
hostid
tail
mkdir
mv
nslookup
sdiff
tar
uptime
wget
whois
unzip
答え1
使用する必要があるファイルを抽出するには、次のようにしますgzip
。
gzip -d *.jpg.gz
これを再帰的に実行すると言いましたが、そうでない場合はfind
各ディレクトリに順番にアクセスして上記のコマンドを実行する必要があります。
答え2
アクセスするホストのシェルがssh
bashバージョン> = 4.0の場合は、次のことができます。globstar オプションの有効化。有効にすると、**
globはサブディレクトリを繰り返し一致させます。したがって、次の事項がお客様のニーズに適している必要があります。
shopt -s globstar
for gz_file in **/*.jpg.gz; do
gzip -d "$gz_file"
done
サブディレクトリに手動で再帰する必要はありません。
答え3
ディレクトリを繰り返すシェルスクリプトを作成することは可能ですが(しかしリモートshにアクセスすることはできないようです)、リモートがワイルドカード拡張のためにSSHを制限したと仮定すると、この粗雑ですが効果的なショートカットを使用できます。
gzip -d *.jpg.gz
gzip -d */*.jpg.gz
gzip -d */*/*.jpg.gz
...
...サブディレクトリの深さとサイズによって異なります。
注:ファイルが多すぎると、最終的に超過する可能性があります。コマンドラインの長さの制限
編集:これはls -Rを使用して答えを含めましたが、フルパスを提供しませんでした。