Remova o '*' de
find ./ -type f -exec sed -ie "s+/opt/conda_tools+$TOOLKIT_DIR+g" * {} \;
Então
find ./ -type f -exec sed -ie "s+/opt/conda_tools+$TOOLKIT_DIR+g" {} \;
Estou trabalhando em um pacote anaconda portátil e estou tentando encontrar o find e o sed para encontrar todos os arquivos e substituir um caminho dentro dos arquivos dentro do diretório atual e seus subdiretórios.
Quando executo o comando, no entanto, sed gera o erro:
sed: couldn't edit anaconda3: not a regular file
O comando que estou usando é:
find ./ -type f -exec sed -i -e "s+/opt/conda_tools+$TOOLKIT_DIR+g" * {} \;
Estou usando o + como o delimitador, pois o / faz parte do caminho. O conteúdo do diretório no qual estou executando o script é:
drwxr-xr-x 24 test_user linuxusers 4096 Nov 21 16:07 anaconda3
A execução do comando find por conta própria lista os arquivos como esperado, mas, por algum motivo, o nome do diretório está sendo selecionado ainda. Eu também tentei a seguinte variação do comando sem sucesso:
find ./ -type f -exec sed -i '' "s+/opt/conda_tools+$INSTALL_DIR+g" * {} \;
Eu usei o find e sed com sucesso antes, mas estou um pouco perplexo aonde procurar a seguir. Existe alguma coisa que obviamente errado que eu estou sentindo falta aqui, ou não tão óbvio?