4

Recently, I converted my music files to a different format. I have for example a folder of an artist containing the different albums in separate folders. I would knowing if is there a way to delete *.mp3 files in all my album folders of an artist using a simple command? For example, if I use ~music/artist_a/album1$rm *.mp3 it delete all the mp3 files of only the folder album1, but I want to use a command that delete all the mp3's of album1, album2,... in the artist_a folder.

Thanks!

3
  • I would be very interested in an answer myself. Surprisingly, the -r option for rm only removes files in the top-level directory. Dec 3, 2011 at 6:56
  • Jeje, I try to use, for example ´rm -r *.mp3´ but it's BAD X) Dec 3, 2011 at 7:02
  • 1
    @WarriorIng64: given that the * expansion is done by the shell, rm only see a list of names, and delete them. If one of these names is a directory, the -r would indicate to remove the whole directory.
    – enzotib
    Dec 3, 2011 at 7:03

2 Answers 2

8

If you go one level up, you can do:

~music/artist_a/album1$ cd ..
~music/artist_a$ rm */*.mp3

to delete mp3s from every directory inside the current. If you want to delete only from specific subdirectories:

~music/artist_a$ rm {album1,album2,album4}/*.mp3

You can also use find to delete all mp3 in subfolders of every level

~music/artist_a$ find . -iname '*.mp3' -delete

Use these command with caution.

1
  • Excellent information! All works OK. Thank you very much! Dec 3, 2011 at 6:59
3

An alternative method you could use would be

find ~music/artist_a -name \*.mp3 -exec rm {} \;

(Source)

1
  • I found this solution is better if you want to delete files into a indefinite number of directories. It's a excellent solution and more general. Dec 3, 2011 at 10:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .