Como faço para substituir todos os arquivos em uma pasta com um arquivo?

0

Eu tenho um arquivo, vamos chamá-lo de image.png . Eu também tenho uma pasta de arquivos assim:

picture.png
file.png
screenshot.png
art.png
painting.png

E assim por diante.

O que eu quero fazer é substituir cada arquivo dentro da pasta por image.png , mas quero manter o nome do original (assim, picture.png ainda é chamado picture.png , mas quando visualizado contém image.png .

image.png não precisa estar localizado dentro da pasta.

Eu tentei isso até agora, mas parece que não funciona:

for file in 'folder' 
do
    cp -f 'image.png'  $file
done
    
por Ev1l0rd 07.07.2016 / 21:15

1 resposta

3

cp deve fazer o que quiser. O problema é que você não está percorrendo uma pasta. Você está fazendo apenas uma iteração com o "folder" sendo o conteúdo da variável $file . Tente iterar sobre o arquivo globbing, assim:

for file in folder/* 
do
    cp -vf 'image.png'  "$file"
done

Eu adicionei um -v para que você possa obter uma saída mais detalhada para ver qualquer erro, mas você pode desativá-lo assim que obtiver os resultados corretos.

    
por 07.07.2016 / 21:19