何百もの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.zip
file1/
file2.zip
file2/