Existe algum comando para copiar e gravar nesse diretório no mesmo tempo no terminal [duplicado]

4

Estou usando o google cloud no Ubuntu.

Toda vez que eu faço upload de um arquivo eu tive que copiar cp filename.zip ../../directory/ e eu tive que digitar novamente o caminho cd ../../directory/ para ir lá e descompactar o arquivo.

Eu preciso saber se existe algum comando que eu possa copiar e gravar nesse diretório sem digitar o caminho do diretório longo duas vezes.

    
por PJ3 13.02.2018 / 07:19

2 respostas

7

Este não é um único comando, mas em bash minha maneira favorita de fazer isso é:

$ cp filename.zip ../../directory/
$ cd :ESC: .

Na última linha eu quero dizer Esc + . . Essa combinação seleciona o último argumento do último comando, no seu caso é ../../directory/ .

Uma maneira diferente de fazer isso é:

$ cp filename.zip ../../directory/; cd $_

Você pode encontrar comandos semelhantes em stackoverflow.com: como usar argumentos do comando anterior? .

    
por hiro protagonist 13.02.2018 / 07:47
3

Você pode adicionar essa função ao seu .bashrc :

cpcd() { cp "" "" && cd "" ; }

Em seguida, você pode chamar cpcd com o arquivo que deseja copiar como primeiro argumento e o diretório que deseja copiar / alterar como o segundo.

por exemplo. cpcd file.txt ~/Downloads copiará file.txt para ~/Downloads e você também acabará em ~/Downloads .

Você pode até adicionar ls para ver visualmente se o arquivo está no diretório desejado.

cpcd() { cp "" "" && cd "" && ls; }

Ou para realmente garantir isso ...

cpcd() {
    cp "" "" && cd ""
    if [ -f ./"" ]
    then
        echo "Successfully copied '' into ''."
    fi
}
    
por Kevin 13.02.2018 / 07:25