O que isso significa no meu programa? -exec ls -s {} [duplicado]

-3

-exec ls -s faz parte do meu programa só quer saber o que significa -s {} . Este é todo o meu programa, eu sei o que ele faz:

find $root -type f -exec ls -s {} \; | sort -n | tail -n 15 >> ~/prog.log
    
por Žolt Ferenc 28.04.2015 / 13:00

2 respostas

4

-exec é uma opção para find que executa um comando usando os nomes de arquivos encontrados. A sintaxe de -exec é:

-exec command {} [;|+]

O {} é substituído pelo nome dos arquivos (um arquivo por execução do comando se ; for usado, vários arquivos se + for usado).

ls -s imprime o tamanho do arquivo junto com o nome do arquivo.

Isso pode ser feito inteiramente em find , usando a opção -printf :

find "$root" -type f -printf "%s %p\n" | ...
    
por muru 28.04.2015 / 13:11
1

Este comando find s arquivos no diretório $root e, em seguida, exec utes um comando em cada um deles. O comando é ls -s filename e {} é o alocador de espaço no comando que é substituído por cada um dos nomes dos arquivos encontrados em $ root.

    
por Jos 28.04.2015 / 13:08