Se você fizer
cmd1 | cmd2 …então
cmd1
e cmd2
correr mais ou menos ao mesmo tempo.
Se você tem um sistema multi-CPU, eles podem realmente funcionar simultaneamente.
Mas em qualquer caso, eles serão executados simultaneamente,
com o agendamento preciso sendo determinado por fatores muito complexos para permitir a previsão.
Seu cmd1
é gzip -cN "$1" > "$1.gz"
e seu cmd2
é ls -l "$1.gz"
.
Portanto, o ls
pode começar a ser executado antes que o gzip
crie o arquivo "$1.gz"
.
ls
não lê a entrada padrão, por isso não faz sentido.
Você provavelmente quer fazer
gzip -cN "$1" > "$1.gz" && ls -l "$1.gz" | awk '{print $5}'ex., execute o
gzip
e, em seguida, se for bem-sucedido, execute o ls -l
.