@ThiagoLuizS o header não redireciona, o header() serve para setar campos no cabeçalho HTTP, você pode setar vários campos como quando você força o download de um arquivo com PHP. Após você chamar o exit ou die, você está interrompendo a execução do script PHP no servidor, e aí sim o browser vai receber esse HTML com o header location que você setou e fará o redirect.
@AndersonCarlosWoss cada comando em um pipe é um subshell, no linux existe o conceito de input/output onde o output de ls e enviado para o input de grep
@WallaceMaxters dar exemplos de respostas dadas por outros usuários que nada tiveram a ver com a minha intenção, que foi a de te ajudar, não me parece uma boa argumentação para me negativar ou não me positivar. Agora eu ainda vou editar a resposta e colocar o exemplo em breve.