Surely on some occasion you have verified that you have a useless file type in several folders, which takes up little space but you simply do not want it on your computer. For example, in macOS some files are created .DS_Store that save information about the icon of a folder, its size and position, and in Windows there are desktop.ini that are equivalent. What do we do if we have a directory full of subdirectories and we want to delete these or other types of files? What we have to do is recursively erase Each and every one of them.
This is something we can do with all types of files. For example, if we have a hard drive full of music, we have a player that has downloaded the covers and we don't want to have them saved, we can use the same command that we will detail below to delete them. Of course, taking into account that we are going to recursively delete directory files and their subdirectories with the terminal and that these will be lost forever, it doesn't hurt to be careful and / or do a test before deleting everything we want to delete.
Recursively delete files of a type from terminal
The commands for the example macOS .DS_Store files would be as follows:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
Of the previous commands, the first will place us in the folder where we want to start, that is, the one that contains all the .DS_Store files that we want to delete. The second is the one that will delete all the .DS_Store files from the first folder and its subfolders or directories. If what we want is to delete the photos from the previously mentioned music folders, we have to put the extension type between the quotation marks, such as '* .jpg'.
To be 100% honest, this is something I will do the day I stop using Cantata as the default music player. Cantata creates and hides information files with the same name as the songs that have a dot and a low bar in front (for example, ._Song). When I need it, the command I will have to use will be find. -name '._ *' -type f -delete.
Has this little guide helped you to recursively delete files from the terminal?
Thanks, but there is an error in your code. You need to use the regular expression '*', that is '* .DS_STORE'. I recommend that you correct it. Well, for those who have less knowledge of bash, the code you gave will not work. Greetings!