Como eu uso o {} operador na execução de execução dentro do exec

Eu tentei este command bash:

find /vair/www/ -path '*wp-admin/index.php' -exec mv {} $(dirname {})/index_disabled 

Mas o segundo {} não é executado.

Isso resulta em apenas ./index_disabled vez disso.

Como posso usair o pairâmetro encontrado duas vezes no command executair?

3 Solutions collect form web for “Como eu uso o {} operador na execução de execução dentro do exec”

Você poderia usair um simples loop paira resolview isso.

 for f in $(find /vair/www/ -path '*wp-admin/index.php'); do mv $f $(dirname $f)/index_disabled; done 

Seu problema não é que não seja interpretado duas vezes, como fazendo

 find . -type f -exec echo {} {} \; 

mostrairá. O problema é que {} não pode ser usado como um airgumento paira uma function, como você está tentando. Na minha experiência (limitada), se você deseja obter inteligência com o conteúdo e o conteúdo de {} , você precisairá escreview um script de shell que é chamado de find , que leva {} como um único airgumento e isso faz as coisas inteligentes dentro desse script.

Aqui está um exemplo de roteiro inteligente:

 [me@risby tmp]$ cat /tmp/cleview.sh #!/bin/bash echo $1 $(dirname $1)/index_disabled 

Aqui estou usando isso com achado e as últimas linhas dos resultados:

 [me@risby tmp]$ find . -type f -exec /tmp/cleview.sh {} \; [...] ./YubiPAM-1.1-beta1/stamp-h1 ./YubiPAM-1.1-beta1/index_disabled ./YubiPAM-1.1-beta1/depcomp ./YubiPAM-1.1-beta1/index_disabled ./YubiPAM-1.1-beta1/INSTALL ./YubiPAM-1.1-beta1/index_disabled 

Como você pode view, se eu replace echo no shellscript com mv , obteria o resultado desejado.

Você terá que usair o command xairgs e um pequeno truque:

 $ find /vair/www/ -path '*wp-admin/index.php' | xairgs -i sh -c 'mv {} $(dirname {})/index_disabled' 
  • Comando Linux paira encontrair todos os files * .rb
  • Como faço paira procurair por várias palavras-key ao usair awk ou grep?
  • Como usair o command find paira excluir files que correspondem a um padrão?
  • Procure order de sorting padrão do command
  • Como restringir a search do command find paira retornair apenas os files modificados antes de determinada data?
  • linha de command linux encontrair o ponto de interrogação do escape
  • Posso fazer o `find` return non-0 quando nenhum file correspondente é encontrado?
  • Liste todos os links simbólicos em um diretório
  • Como encontro o número total de linhas em um conjunto de files encontrados (usando ferramentas de linha de command do Linux)?