С поиском музыки предлагаю использовать не bash, а php. Что-то вроде
этого. С архивами дело обстоит сложнее, но тоже решаемо, например,
вот так.
А вот с программами сложнее. А если у Вас НЕ портейбл программа, её НЕ надо удалять?
Есть несколько признаков портейбл программы. Но отслеживать их очень сложно, а главное не эффективно. Если программа портейбл - наверняка она содержит библиотеки Visual C++ или DirectX, например. Как вариант искать их.
Всё вышеописанное, можно сделать и на bash, теоретически можно даже читать в бинарном режиме файлы и определять их тип. В любом случае искать файл надо по атрибутам внутри, а не по расширению, т.к. даже пресловутый Зайцев.НЕТ умеет менять расширение файла. И архивы можно распаковывать во временную папку. Основную проблему я вижу в определении портейбл программ.