I've just found this command:
upower -e that displays a list of files that can be used with upower -i to display plugged device status.
So my first try was using:
upower -e | xargs upower -i but it doesn't work. So I've tried:
$ upower -e | xargs echo /org/freedesktop/UPower/devices/line_power_AC /org/freedesktop/UPower/devices/battery_BAT0 /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001 /org/freedesktop/UPower/devices/DisplayDevice and it display all files in single line. So I've used:
$ upower -e | xargs -0 echo /org/freedesktop/UPower/devices/line_power_AC /org/freedesktop/UPower/devices/battery_BAT0 /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001 /org/freedesktop/UPower/devices/DisplayDevice it works but displays one empty line, but this doesn't work:
$ upower -e | xargs -0 upower -i failed to set path: Object path invalid: /org/freedesktop/UPower/devices/line_power_AC /org/freedesktop/UPower/devices/battery_BAT0 /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001 /org/freedesktop/UPower/devices/DisplayDevice Why upower -e | xargs upower -i doesn't work? I'm using Bash on Fedora.
Is there something I'm missing here?
EDIT:
This seems to work:
upower -e | xargs -I {} upower -i "{}" But I'm wondering: why a quote is needed if the filename doesn't have spaces?
upower -ican only handle a single object path at a time? Tryupower -e | xargs -L 1 upower -ixargs -I {}works, but the files don't have spaces, then why this is needed?-Iisn't really needed, but it implies-L1as a side effect - that's what's really making the difference here I thinkupower -epresumably?upower -ineeds an input path