Mostra o que foi copiado por 'cp' (usando 'ksh')

4

Gostaria de obter uma saída mostrando o que foi copiado por cp . O único problema é como fazer isso quando eu cp muitos arquivos por vez. Por exemplo, cp ./sourceDir/* $destinationPath/ .

    
por user1058398 03.12.2013 / 08:51

3 respostas

7

Como Lawrence mencionou, você pode usar

cp -v

para ativar o modo "detalhado", que exibe os arquivos copiados. Outra coisa que pode ser útil é

cp -v > foo

, que produzirá a lista de arquivos para um arquivo chamado foo . Isso é útil se você copiar muitos arquivos e quiser revisar a lista mais tarde.

    
por 03.12.2013 / 09:02
4

cp -v ativa o modo detalhado que exibe o que está sendo copiado.

    
por 03.12.2013 / 09:00
2

Verifique se o seu sistema tem a opção -v para cp .

Se não, você pode fazer um loop para mostrar os nomes dos arquivos e copiá-los um por um. Isso não é completamente simples se você quiser acompanhar se algumas cópias falharam.

err=0
for x in ./sourceDir/*; do
  echo "$x -> $destinationPath/${x##*/}"
  cp "$x" "$destinationPath/" || err=1
done
return $err

Como alternativa, você pode usar uma ferramenta com muitas opções, como rsync.

rsync -av ./sourceDir/ "$destinationPath/"

Indo na outra direção, você pode achar suficiente para ver a expansão do curinga.

echo "Copying files:" ./sourceDir/*
cp ./sourceDir/* "$destinationPath/"

Ou você pode imprimir um rastreamento de comandos do shell:

set -x
cp ./sourceDir/* $destinationPath/
    
por 04.12.2013 / 01:50

Tags