I've found fzf to be a very useful utility, but for some reason it is failing me in this one particular instance.

$ brew outdated | fzf -m --tac | brew upgrade

Instead of letting me choose which items to upgrade, it displays a menu for a moment, and then proceeds to upgrade everything. I've never had it behave this way before. What am I overlooking?


You're sending the selection to stdout and pipe it over to brew upgrade, but brew upgrade does not use stdin. The command updates just everything.

You will need something like this to add the selection as arguments:

brew outdated | fzf -m --tac | xargs brew upgrade
  • This solves the initial problem. It should not be used as is, however, since hitting <kbd>escape</kbd> in fzf will result in brew aggressively trying to upgrade everything, and ⌃C only interrupting one thing at a time. (Very bad UX on the part of Homebrew in that case!) – iconoclast Sep 3 '18 at 21:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.