Using dpkg -L <package name>
I am able to obtain a list of all the files from a package, but it contains a list of directories as well, which I want to exclude.
So, for example:
dpkg -L elixir
gives me:
/.
/usr
/usr/bin
/usr/lib
/usr/lib/elixir
/usr/lib/elixir/bin
/usr/lib/elixir/bin/elixir
/usr/lib/elixir/bin/elixirc
/usr/lib/elixir/bin/iex
/usr/lib/elixir/bin/mix
/usr/lib/elixir/lib
/usr/lib/elixir/lib/eex
/usr/lib/elixir/lib/eex/ebin
/usr/lib/elixir/lib/eex/ebin/Elixir.EEx.Compiler.beam
(etc...)
I have tried excluding the directories with the following:
dpkg -L elixir | find -maxdepth 1 -not -type d
But that just gives the file in the current directory.
Piping the dpkg
output to ls
with xargs
also does not seem to allow me to filter out directories.
Best Answer
Simply loop over each line of
dpkg -L elixir
and test whether the line is the path of a regular file, thenecho
it:Your idea with
find
looks good butfind
so it’s not the right tool here.