Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] Playlisten mit find suchen  (Read 8224 times)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
[DE] Playlisten mit find suchen
« on: 2014/10/02, 19:27:28 »
Hallo Community,
ich habe da ein etwas kniffliges (zumindest für mich) Problem mit dem find Kommando. Ich möchte einen Teil des Verzeichnisbaumes meiner Musiksammlung nach vorhanden Playlisten durchsuchen, d.h. ich möchte als Ergebnis alle Verzeichnisse haben in den keine Playliste existiert.

Ich habe schon mit find ein bisschen herum experimentiert, aber komm nicht auf die Lösung :-(

Das Verzeichnis ab dem ich rekursiv durchsuchen möchte heißt /mnt/share/music und die Playlisten beginnen immer playlist_*.m3u.

Offline ayla

  • User
  • Posts: 1.745
Re: Playlisten mit find suchen
« Reply #1 on: 2014/10/03, 00:00:59 »
Hallo,

ich hab mal im Netz ein Script gefunden mit dem man directories löschen konnte sofern sie einen bestimmten Dateityp nicht enthielten, leider weiß ich nicht mehr woher ich es hab.

Auf Dein Problem angepasst
Quote
ich möchte als Ergebnis alle Verzeichnisse haben in den keine Playliste existiert.
sollte es so funktionieren:

Code: [Select]
#! /bin/bash

tree_contains_m3u_files()
{
   
    find "$1" -type f -name "*.m3u" -print0 |
        read -r -d $'\0' file && return 0

    return 1
}

find . -depth -type d -print0 |
while read -r -d $'\0' dir; do
    if ! tree_contains_m3u_files "$dir"; then
        echo "$dir"
    fi
done


Das 'rm -rf' hab ich bereits durch ein 'echo' ersetzt... :)

Vom übergeordneten dir aus aufrufen.


hth
ayla
« Last Edit: 2014/10/03, 00:07:02 by ayla »