Por que encontrar reclamações de uma expressão inválida?

1

Eu tenho um script de shell como este para copiar do arquivo de backup para o diretório semanal:

#!/bin/sh
find . type f \( -iname "SS1*.tar" -o -iname "SS2*.tar" -o -iname "SS3*.tar" -o -iname "SS4*.tar"\) -exec cp {} /backup_file/backup/weekly \;

Então, depois de executá-lo, recebo uma mensagem de erro: "expressão inválida".

Por favor, ajude-me a esclarecer este problema.

    
por Christianto 26.09.2014 / 11:31

2 respostas

2

Você tem dois erros de sintaxe:

  • type f deve ser -type f .
  • Você precisa de um espaço antes de \) .

Então o comando fixo:

find . -type f \( -iname "SS1*.tar" -o -iname "SS2*.tar" -o -iname "SS3*.tar" -o -iname "SS4*.tar" \) -exec cp {} /backup_file/backup/weekly \;
    
por 26.09.2014 / 11:42
1

Mais simples: find . -type f -iname "SS[1234]*.tar" -exec cp {} /backup_file/backup/weekly \;

    
por 26.09.2014 / 11:41

Tags