stat command não encontrado

1

Eu quero executar o comando stat no meu shell unix / usr / bin / ksh:

Entrada:

/bin/date +%Y%m%d%H%M%S -d "$(/usr/bin/stat -c %x find.txt)"

E a saída:

/usr/bin/ksh: stat:  not found

Meu sistema: SunOS 5.10 Generic_150400-23 sun4v sparc sun4v

    
por ANOUK_prog 01.06.2016 / 22:03

3 respostas

5

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]'
    
por 02.06.2016 / 01:32
1

Certamente seu erro serve para indicar que o seu shell:

/usr/bin/ksh:

Não é possível encontrar "stat":

stat: not found

O seu sistema operacional fornece o comando "stat"? Você precisará fornecer mais informações sobre seu sistema operacional e sua versão para mais orientações.

Você também pode ter um problema em sua variável de ambiente "PATH".

    
por 01.06.2016 / 23:09
0

Depende completamente do seu sistema, que você não especificou. Uma alternativa para instalar o binário fornecido pelo seu gerenciador de pacotes é compilar o programa a partir da origem. Para fazer isso, você deve primeiro fazer o download da fonte coreutils ( coreutils-8.0 no momento da escrita).

Se estiver em um arquivo, desarquive-o e, em seguida, insira o diretório da origem. Execute o script de configuração com o comando ./configure e aguarde a conclusão. Após a conclusão da configuração (sem grandes erros), execute make, com o comando make .

O tempo necessário para que o make seja concluído pode variar de 30 segundos a literalmente dias, dependendo do tamanho e da complexidade do aplicativo. Neste caso, no entanto, é altamente improvável que a etapa do make demore alguns minutos.

Uma vez feito o make, compilando os programas (sem erros), instale os programas com o comando make install , ou se você não for o usuário root sudo make install . Isso deve levar apenas alguns segundos, embora em alguns casos possa demorar mais. Depois de concluído, você pode sair do diretório coreutils e, em seguida, continuar a excluí-lo.

Notas

  • Os únicos requisitos para que isso funcione (juntamente com as bibliotecas e dependências adequadas *) são GCC ou CC e o utilitário make.
  • Para executar todas essas etapas com um comando, você pode inserir ./configure && make && make install .
  • A lista completa de dependências para o coreutils é: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, um Sed .

Referências

Para mais informações, consulte estas páginas:

por 01.06.2016 / 23:16