commandlinefu.com is the place to record those command-line gems that you return to again and again.
Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
You can sign-in using OpenID credentials, or register a traditional username and password.
First-time OpenID users will be automatically assigned a username which can be changed after signing in.
Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):
Subscribe to the feed for:
'dpkg -S' just matches the string you supply it, so just using 'ls' as an argument matches any file from any package that has 'ls' anywhere in the filename. So usually it's a good idea to use an absolute path. You can see in the second example that 12 thousand files that are known to dpkg match the bare string 'ls'.
There are 4 alternatives - vote for the best!
Works similar to dpkg -S, but uses the locatedb and is thus inarguably a lot faster - if the locatedb is current.
Uses dpkg -S or apt-file to find the file you want and shows results in various ways. Available at https://github.com/Pipeliner/configs/blob/master/bin/pacof
pacof -xp 'bin/[^/]*mixer'
alsamixergui
alsa-tools-gui
alsa-utils
...
If you can do better, submit your command here.
You must be signed in to comment.
oh yes, so sweet and tasty!
If you need regex,
apt-file -x search /some/fileapparently dlocate is much faster for this if you find yourself needing to do a lot of sleuthing.
Thanks for this :)
This will do the opposite, what files a package generated during installation.
dpkg -L packagenameI wish I could vote this up again! what a time saver.
The above are for apt based systems. For portage on gentoo, you need the app-portage/gentoolkit package installed and do
equery belongs /some/fileI used grep to filter, and that additionally gives
(A) all symbolic link (with the same name) installed by the package as well,
(B) other files/directories with the same name installed by other packages.
if that info is of any use to you.
Example and output will make it more clear:
Example:
dpkg -S ip | grep "/ip$"Output:
linux-headers-2.6.27-7-generic: /usr/src/linux-headers-2.6.27-7-generic/include/config/ip
iproute: /bin/ip
iproute: /sbin/ip
First line of the output is a directory by name ls intalled
by the package linux-headers-2.xxxx
Second line is the executable by name ip
The last line of the output is the symbolic link to
the command ip
You need to replace both instances of string ip with the command/file of your interest in my example command.
Typo: First line of the output is a directory by name ls intalled
Read: First line of the output is a directory by name 'ip' installed
You might want:
dpkg -S `which ls`You might know the command but not the full path, i.e. on Ubuntu 11.10:
which ls/bin/ls
So your command would't actually tell you what package ls comes from on this distro.
in the redhat world this is similar to rpm -qf fllename.
I just learned this for debian based systems today. It's useful.