Seus dois primeiros comandos propostos não são equivalentes. Se você usar find
to -exec ls
, o que acontece é que find
executará ls
uma vez para cada arquivo. A ordem de saída será
a ordem encontrada por find
, não ls
. Como ls
está sendo executado um arquivo por vez, ele não sabe como alinhar as colunas. Por exemplo, feito aqui no Cygwin bash:
Nicole@NicoleDesktop ~/HamiltonCshell/Current/util
$ find . -name "s*.c" -exec ls -lrt {} \;
-rwx------+ 1 Nicole None 104826 Dec 29 2010 ./Archive/su.2010-12-29/su.c
-rwx------+ 1 Nicole None 107074 Aug 2 2011 ./Archive/su.2011-08-29/su.c
-rwx------+ 1 Nicole None 125359 Jul 17 11:47 ./sed.c
-rwx------+ 1 Nicole None 15517 Oct 6 2011 ./setrows.c
-rwx------+ 1 Nicole None 8454 Oct 8 2011 ./setwin.c
-rwx------+ 1 Nicole None 39007 Jan 24 2012 ./shortcut.c
-rwx------+ 1 Nicole None 4655 May 22 2009 ./showdesk.c
-rwx------+ 1 Nicole None 66906 Nov 20 09:58 ./sort.c
-rwx------+ 1 Nicole None 9702 May 22 2009 ./split.c
-rwx------+ 1 Nicole None 21306 May 22 2009 ./strings.c
-rwx------+ 1 Nicole None 113680 Jul 15 06:56 ./su.c
-rwx------+ 1 Nicole None 10076 May 23 2009 ./sum.c
Se você usar a substituição de comando, o shell colará a lista produzida por find
de volta na linha de comando como argumentos para ls
e, em seguida, executará ls
exatamente uma vez na lista completa de arquivos e resultará de fato, ser ordenado por data, o mais novo primeiro.
Nicole@NicoleDesktop ~/HamiltonCshell/Current/util
$ ls -lt $(find . -name "s*.c")
-rwx------+ 1 Nicole None 66906 Nov 20 09:58 ./sort.c
-rwx------+ 1 Nicole None 125359 Jul 17 11:47 ./sed.c
-rwx------+ 1 Nicole None 113680 Jul 15 06:56 ./su.c
-rwx------+ 1 Nicole None 39007 Jan 24 2012 ./shortcut.c
-rwx------+ 1 Nicole None 8454 Oct 8 2011 ./setwin.c
-rwx------+ 1 Nicole None 15517 Oct 6 2011 ./setrows.c
-rwx------+ 1 Nicole None 107074 Aug 2 2011 ./Archive/su.2011-08-29/su.c
-rwx------+ 1 Nicole None 104826 Dec 29 2010 ./Archive/su.2010-12-29/su.c
-rwx------+ 1 Nicole None 10076 May 23 2009 ./sum.c
-rwx------+ 1 Nicole None 21306 May 22 2009 ./strings.c
-rwx------+ 1 Nicole None 9702 May 22 2009 ./split.c
-rwx------+ 1 Nicole None 4655 May 22 2009 ./showdesk.c