Como criar um alias para os diretórios e copiar um arquivo para outro?

2

Eu quero copiar um arquivo de /home/e_empid/file1 para /home/e_empid /dir1/dir2/dir3/Backupfile1 . O usuário não deseja gravar um comando longo a cada vez. Escreva um comando para definir um apelido para a ação acima?

Eu tentei o código abaixo

alias a= 'cd ~/e_empid/'
alias b= 'cd ~/e_empoid/dir1/dir2/dir3/'

Eu quero copiar o file1 para backupfile1 . Como devo fazer depois de criar um alias?

    
por panni 07.12.2014 / 08:39

2 respostas

3

Altere seus aliases para variável como abaixo sem o comando cd e sem espaço após = sign e remova o último / porque os aliases não funcionarão no comando cp ou você poderá usar a função; Como resposta do @jherran, que é mais flexível com a função.

sorc=~/e_empid
dest=~/e_empoid/dir1/dir2/dir3/Backupfile1

Em seguida, use isso como:

cp $sorc/file1 $dest/

Se você executar o comando acima, o arquivo file1 será copiado do diretório ~/e_empid para o diretório ~/e_empoid/dir1/dir2/dir3/Backupfile1 .

Você pode adicioná-los ao final do arquivo .bashrc para usar na próxima vez:

echo 'sorc=~/e_empid' >> .bashrc
echo 'dest=~/e_empoid/dir1/dir2/dir3/Backupfile1' >> .bashrc

e use cp $sorc/Any_File_inside_it $dest/ .

    
por 07.12.2014 / 08:53
2

Se você estiver usando bash, você pode criar uma função em vez de um alias.

bcopy () {
    cd ~/e_empid/
    cp file1 /home/e_empid/dir1/dir2/dir3/Backupfile1
    cd ~/e_empoid/dir1/dir2/dir3/
}

Você só precisa chamar usando bcopy .

Você também pode usar $1 e $2 em vez de file1 e Backupfile1 se os arquivos não tiverem os mesmos nomes todas as vezes.

cp $1 /home/e_empid/dir1/dir2/dir3/$2

Nesse caso, você precisa chamar usando bcopy orig-file dest-file .

    
por 07.12.2014 / 08:54