端末から一度に複数のファイルを抽出する

端末から一度に複数のファイルを抽出する

何百ものzipファイルを含むディレクトリがあります。 50個のファイルを選択し、unzip端末で(または)を使用して一度にすべて抽出できるようにしたいと思います。7zファイル名が完全に異なるため、正規表現を使用して一致させることはできません。

簡単な例として、次の3つのファイルがあります。

41a02d81b1c7b6225b11908c38b820cc.zip
d581697699c4321c32b733a9678.zip
ffb7077a319b2d168d5415b0f59a9e2ba3a.zip

手動でコマンドを入力せずにそのうちの2つだけを抽出したいと思います。

GUIを使用して複数のファイルを選択し、コマンドを介して処理するためにリストをbashにエクスポートする方法はありますか?

ベストアンサー1

次の場合は、シェルとを使用しzshてください。

setopt auto_menu autolist correct no_list_ambiguous
setopt list_types auto_pushd no_list_beep

zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate _prefix
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
eval "$(dircolors)"
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' max-errors 1 not-numeric
zstyle ':completion:*' menu select=2
zstyle ':completion:*' original true
zstyle ':completion:*' prompt 'correct> '
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
zstyle ':completion:*' verbose true
zstyle ':completion:*' menu select=2
autoload -Uz compinit
compinit -i

(ここでは、~/.zshrcこれらすべてが関連しているわけではなく、compinstall完了した調整を実行して取得できることに注意してください。)次のように入力できます。

$はfを表します(*.zipTab

zipこの時点で、現在のディレクトリのファイルが一覧表示され、矢印キーとを使用してそのファイルを選択するように求められますEnter

Enter項目を選択するために+を押すのではなく、Alt+を押すとA現在の項目が挿入されますが、引き続きさらに多くのファイルを選択することもできます。

最後にファイルを押してEnterコマンドを完了します。例:

for f (file1.zip file2.zip) unzip -d $f:r $f

各ファイルの名前は同じですが、拡張子(in、inなど)を持た.zipないディレクトリに抽出されます。file1.zipfile1/file2.zipfile2/

おすすめ記事