Copiar e chmod / chown ao mesmo tempo

14

Eu tenho um arquivo de log de propriedade rootque desejo copiar em um diretório de outro usuário para ele analisá-lo (ele deve ser descompactado primeiro).

Atualmente eu teria que

# cp log.xz /home/user/Documents
# chown user:user /home/user/Documents/log.xz

Existe uma maneira de emitir os dois comandos ao mesmo tempo, talvez com uma ou mais cpopções?

usr-local-ΕΨΗΕΛΩΝ
fonte
você está perguntando sobre a execução de vários comandos ao mesmo tempo?
asvignesh
@Vignesh eu só estou pedindo como fazê-lo o caminho mais curto, talvez com o uso adequado de tubos;)
ΕΨΗΕΛΩΝ usr-local-

Respostas:

6

A página de manual cp não lista nenhuma opção que permita fazer isso apenas com o comando CP. Se você deseja apenas emitir um comando e "ir embora", você pode colocar os 2 comandos em 1 linha separados por a; para executar automaticamente os comandos em sequência.

cp log.xz / home / usuário / Documentos; usuário chown: usuário /home/user/Documents/log.xz
davidgo
fonte
Embora trivial, fiz minha pergunta para ver se havia uma linha inteligente, por exemplo, com o uso adequado de canos. Provavelmente não existe
usr-local-ΕΨΗΕΛΩΝ
Eu não acho que seja uma boa solução, mas se você está decidido a usar pipes, eu vim com a seguinte mistura que eu suspeito que funcionará - "cp -v /from.dir / para / dir 2> / dev / null | cut -f1 -d "'" | cut -c2- | xargs chown user: user "
davidgo
Role além da resposta aceita se você realmente precisar de uma resposta, pessoal ...
JosiahYoder-desativador, exceto ..
34

Você pode querer olhar para install:

install -g user -o user log.xz /home/user/Documents

installpossui outras opções adequadas para instalação. por exemplo, definir modo ou preservar a estrutura de diretórios.

BatchyX
fonte
Boa dica. Eu tendia a pensar "instalar" destina-se a instalar coisas, mas seu resumo real na página de manual é: "install - copiar arquivos e atributos definidos"
Raúl Salinas-Monteagudo
@esperanto: O principal uso de installainda é instalar arquivos no sistema. Alguns programas substituem installmodificando a variável de ambiente PATH, para que os arquivos sejam instalados em outro local. Alguns construtores de pacotes fazem isso para que os arquivos não sejam instalados no sistema atual, mas salvos em um pacote.
BatchyX
1
É -g group -o user. -osignifica proprietário.
JosiahYoder-desativador exceto .. 1/08/19
2

veja a página de mapa do comando cp

--preserve [= ATTR_LIST] preserva os atributos especificados (padrão: modo, propriedade, registros de data e hora), se possível atributos adicionais: contexto, links, xattr, todos

Jalal Hajigholamali
fonte