mushell is a music collection management shell for linux using an sqlite-database to store id3-tags and other metadata. files in the database can be searched with a simple but powerful query language. the files found in a search can then be played with xmms, moved to different directories, tagged or deleted.
mushell is written as a collection of bash-scripts depending heavily on external command line tools. currently it has been tested on debian/sid only.
mushell is released under the GPL.
the dot gray at gmx dot net
| bash | 3.00.16 |
| xmms | 1.2.8 |
| xmms-shell | 0.99.3 |
| sqlite | 2.8.5 |
| mp3info | 0.8.4 |
| alsamixer | 1.0.0 |
first, download and install the programms listed under requirements. then unpack the tarball, put the resulting directory in your $PATH and run mushell. it will detect you have never used it before and ask you a few questions about its configuration. after that, you are ready to go.
mushell [ command [ arguments ] ]
s | search [ options ] query | search files by conditions options: [ -n | --newest ] number |
p | play [ options ] | play searched files with xmms options: -e | --enqueue | -f | --force |
l | list | display the currently selected files |
e | edit | edit the list of selected files |
f | fetch | read back xmms playlist into the selection |
c | change tag value | set a tag for the selected files |
m | move target | move the selected files into a target directory |
d | delete | delete the selected files |
u | update [ directory ] | compares the database with the physical files and updates the database to reflect changes |
du | duplicates | find duplicates by md5 checksum |
! | shell [ command ] | open subshell or execute command |
. | xmms [ command ] | open xmms-shell or execute command |
: | sql | open sqlite or execute command |
, | mix | start the mixer |
+ | loud | be loud - high volume |
- | quiet | be quiet - low volume |
st | status | display whether xmms is playing, paused or stopped and the name and number in the playlist of the currently played song |
h | help [ topic ] | topic may be usage, query, tags, all or readme |
hi | history | display the command history |
cl | clear | clear the screen |
co | configure | change the user configuration |
q | quit | leave the shell |
a search query consists of one or more conditions. in the simplest case a condition is a substring of letters or digits found in any tag of a file.
to exclude a file from the search result a condition it may be prefixed
with a - character.
a condition can be restricted to a single tag by prefixing it with the
name of the tag followed by an =. usable tag-names are listed below,
where all tags can be abridged with their first two letters - or even
one.
all searches are case-insensitive.
| al | album | |
| a | ar | artist |
| c | co | comment |
| g | ge | genre |
| k | kb | kbps |
| l | le | length |
| t | ti | title |
| tr | track | |
| y | ye | year |
| st | status | |
| p | pa | path |
| d | di | dir |
| n | na | name |
| da | date | |
| s | si | size |
| m | mi | mime |
| md | md5 | |
| f | fp |