Renomeie os arquivos pertencentes ao usuário que executa o script

1

Eu tenho este script que renomeia arquivos especificamente.

#!/bin/bash
#sh j
echo "for rename press [y]"
echo "Or any key to continue"
find . -name "*string1*" -ok rename -v -- 's/(.*)\/(.*)string1(.*)/\/beginning_string3/' {} \;
echo "No more matches."

Agora, quero renomear apenas os arquivos de propriedade do usuário que executa o script.

    
por Daniel 05.01.2016 / 16:52

1 resposta

2

Esse comando find parece familiar ...

Para restringir o comando find apenas aos arquivos pertencentes apenas a um determinado usuário, você pode usar a opção -user ; para restringi-lo apenas a arquivos de propriedade do usuário que está executando o script (ou seja, se você estiver executando o script usando sudo somente arquivos de propriedade do root serão correspondidos), passe $USER como argumento para a opção -user :

find . -name "*string1*" -user "$USER" -ok rename -v -- 's/(.*)\/(.*)string1(.*)/\/beginning_string3/' {} \;

Você pode substituir {} \; por {} + para um melhor desempenho:

find . -name "*string1*" -user "$USER" -ok rename -v -- 's/(.*)\/(.*)string1(.*)/\/beginning_string3/' {} +
    
por kos 05.01.2016 / 17:00