Eliminar carpeta con una condición específica

1

Necesito una secuencia de comandos para eliminar una carpeta, solo si la carpeta no contiene archivos multimedia con la extensión avi o mp4 .

    
pregunta Edgard 05.03.2014 - 04:53

1 respuesta

1

Si todas las carpetas que se eliminarán están directamente debajo de la carpeta que contiene y todos los archivos mp4 y avi están directamente debajo de las carpetas guardadas:

for d in */;do ls "$d"|grep -Eq '.*\.(mp4|avi)$'||echo rm -r "$d";done

Si los archivos mp4 y avi pueden estar en subcarpetas de las carpetas guardadas:

for d in */;do [[ $(find "$d" -iname \*.mp4 -o -iname \*.avi) ]]||echo rm -r "$d";done

Si las carpetas que se van a eliminar pueden estar en subcarpetas de la carpeta que contiene:

find . -type d|while read d;do ls "$d"|grep -Eq '.*\.(mp4|avi)$'||echo rm -r "$d";done

    
respondido por el user495470 05.03.2014 - 10:14

Lea otras preguntas en las etiquetas