O comando stat
não é padrão. Há um no Linux, um mais restrito no Linux embarcado, um com opções completamente diferentes no FreeBSD e no OSX, e nenhum na maioria das outras variantes do Unix, como Solaris, AIX e HP-UX. Sua sintaxe parece destinada ao stat
do Linux.
Você aparentemente está executando um sistema sem stat
. Você provavelmente não tem date -d
então.
A única maneira portátil de listar o tempo de acesso de um arquivo é com ls
.
ls -log -u find.txt
Isso dá uma saída menos precisa do que você precisa, em um formato complicado.
Se você puder instalar GNU coreutils , faça isso e use seus stat
e date
comandos. Muitas variantes modernas do Unix têm uma maneira fácil de instalar utilitários GNU.
Como alternativa, use o Perl, que é frequentemente instalado em sistemas Unix. Ligue para stat
para ler a data e hora do arquivo e localtime
para dividir o registro de data e hora em partes de data e hora.
perl -e '@stat = stat($ARGV[0]); @time = localtime($stat[9]); printf "%04d%02d%02d%02d%02d%02d\n", $time[5]+1900, @time[4,3,2,1,0]'