En el primero, se le pasa a cd el valor de la variable NOMBREDIR, que será un directorio, para que cd entre al mismo, si por algún caso, esto diese un error se enviaría a /dev/null y no sería impreso por pantalla por lo de 2>&1 no tengo ni idea, pero que yo sepa el & se utiliza para mandar procesos al background.
En el segundo ya se entra en tema de pipes, la salida que da el primer comando ls -lr se envía a grep para manejo de expresiones regulares y la salida de esto, se vuelve a enviar a pr -l ( que si que no tengo ni idea de lo que es)
Lo siento tío pero eso es en todo lo que te puedo ayudar yo, esperemos la respuesta de alguien que controle más el tema porque yo de bash poco o nada.
Un saludo