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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.