Cria um arquivo para cada resultado do comando find?

1

Com esta linha de código, eu gero uma saída de cada resultado.

exec("find ics/ -mmin +3 -type f -name '*.pdx' -exec basename {} ';' > ./tmp/filename") 

Como posso gerar um arquivo com nome de arquivo dinâmico toda vez? Assim:

./tmp/filename_{*Here should be the dynamic name*}
    
por mediii 01.12.2015 / 10:17

1 resposta

2

Você pode iniciar um novo shell e fornecer o arquivo como um argumento. Em seguida, use a expansão do parâmetro POSIX para se livrar do caminho e, se desejado, a extensão:

find . -type f -name "*.pdx" \
  -exec sh -c \
    'base="${0##*/}"; printf "%s\n" "$base" > ./tmp/filename_"${base%.pdx}"' {} \;
    
por 01.12.2015 / 10:45