Preciso copiar um arquivo da pasta /a/b/ para /a/c/, a/d/, a/e/
Além de usar
cp file.name /a/c cp file.name /a/d cp file.name /a/e
no terminal, existe uma maneira de usar uma linha? Eu li e vi que existem maneiras, mas acho que minha situação é diferente, pois os nomes das minhas pastas de destino são diferentes.
Também quero perguntar se é possível copiar um arquivo para uma pasta de destino e um nível recursivo. Portanto, se houver uma pasta que tenha a/b/c/d e você soltá-la em a, ela vai para b e b/c, e não b/c/d.
Bem, isso é ruim porque
cp can copy multiple sources but cannot copy to multiple destinations
é disso que você precisa. Para que isso funcione, você deve invocar cp várias vezes - uma vez por destino que você já tentou. O que você quer pode ser realizado por1. Usando o loop for
Isso é bem auto-explicativo.
2. combinando
cp
comxargs
:Irá copiar file1 para dir1, dir2 e dir3. xargs chamará cp 3 vezes para fazer isso.
xargs
invocarácp
3 vezes e copiará file1 para dir1, dir2 e dir3 em chamadas sucessivas.No seu caso será
Para mais detalhes sobre xargs, consulte a página de manual .
É um pouco complicado, mas você pode redirecionar o conteúdo do arquivo para vários destinos usando
tee
: