---
name: "cdtool"
section: "1"
platform: "linux"
package: "cdtool"
version: "2.1.8-release-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cdtool"
---

# cdtool(1)

play and catalog audio CDROMs on CDROM drive(s)

## NAME

cdtool - play and catalog audio CDROMs on CDROM drive(s)

## SYNOPSIS

```
cdeject   [-[0..9]|-d device]  [-V|-?|-h]
cdclose   [-[0..9]|-d device]  [-V|-?|-h]
cdir -n   [-[0..9]|-d device]  [-r|-s|-t|-V|-?|-h]
cdinfo    [-[0..9]|-d device]  [-a|-r|-s|-t|-v|-V|-?|-h]
cdpause   [-[0..9]|-d device]  [-V|-?|-h]
cdplay    [-[0..9]|-d device]  [start [stop]
cdplay    [-[0..9]|-d device]  [+|- number]
cdplay    [-[0..9]|-d device]  [start|stop|resume|eject|close|info|dir]
cdplay    [-[0..9]|-d device]  [-V|-?|-h]
cdstop    [-[0..9]|-d device]  [-V|-?|-h]
cdvolume  [-[0..9]|-d device]  [-V|-?|-h|level]
cdshuffle [-[0..9]|-d device]  [-V|-?|-h]
```

## DESCRIPTION

The *cdeject* command ejects the current compact disc.

The *cdclose* command closes the CDROM tray.

The *cdir* command lists information about the currently loaded audio compact disc. In particular, it lists the lengths of all tracks. It also references the database files specified in the **CDTOOLPATHDB** environment variable and the **~/.cdtooldb** file, which use a simplified version of the format used by [*workman*(1)](/workman/1.md). If one of these files contains an entry for the current compact disc, *cdir* will print title, artist, and track name information.

- **-n**

  Do not lookup any information in the database files.

- **-s**

  Print information in a short format: only author, title, and current track, all on one line.

- **-t**

  Print a template for the current cd, including title, artist, and track name information if available. If blank lines are filled in, this can be appended to the **~/.cdtooldb** file.

The *cdinfo* command, with no option used, will print out the audiostatus (playing, etc.).

- **-a**

  Print out the absolute disc time.

- **-r**

  Print out the relative track time.

- **-s**

  Print out the audiostatus.

- **-t**

  Print out the current track.

- **-v**

  All info: **status track absolute relative**.

The *cdpause* command pauses the currently playing compact disc.  Resume by using *cdplay* with no arguments.

The *cdplay* command plays the compact disc.  If called with one argument, this is the starting track number.  If called with two arguments, these are the starting and stopping track numbers. If the first argument is a **+** or **-** then skip the number of tracks given by the second argument forward or backward. If no second argument is given, skip one. A **0** as first argument or no argument replays current track.

The *cdstop* command stops the compact disc, if it is playing.

The *cdvolume* command sets the output volume level of the CD player.  The level is an integer from 0 to 255.

The *cdshuffle* command plays the audio tracks on the disc in random order.

The default device opened is **/dev/cdrom**.  This default and others may be changed in *config.h*. Options supported by all programs are:

- **-\[0..7\]**

  Multiple cdrom support to open **/dev/scd0../dev/scd7** \[by default\].

- **-d device**

  Multiple cdrom support to open **device** by name.

- **\[-h\|-?\]**

  Print out help for the command.

- **-V**

  Print out version information and build information.

- **-D**

  Enable runtime debugging.

## FILES

**~/.cdtooldb** – default database file.

## ENVIRONMENT

**CDTOOLDBPATH** – colon delimited path of database files to search.  It is not necessary to specify **~/.cdtooldb**, as this is automatically added to the end of the search path.

**CDTOOLDEV** – device file for cd-rom, overrides compile-time defaults.

## SEE ALSO

[cdctrl(1)](/cdctrl/1.md), [cdadd(1)](/cdadd/1.md), [cdown(1)](/cdown/1.md)

## AUTHORS

```
Main code:
Thomas Insel		<tinsel@tinsel.org>
Enhancements:
Byron Ellacott		<rodent@homer.humbug.org.au>
Wade Hampton		<whampton@staffnet.com>
Lin Zhe Min		<ljm@ljm.wownet.net>
Sven Oliver Moll  	<smol0075@rz.uni-hildesheim.de>
Daniel R. Risacher	<risacher@worldnet.att.net>
Max Vozeler		<max@hinterhof.net>
```
