[LatinaLUG] Corso di Bash: impressioni e primo esercizio

Enrico Bianchi enrico.bianchi@ymail.com
Mar 8 Gen 2013 21:50:05 CET


On 12/05/2012 12:49 PM, Roberto Polli wrote:
> Esercizio 1
>
> a. Cosa fa' il comando # cp ; ?
Copia un file da una locazione del disco ad un'altra

> b. Cosa fanno i comandi della riga seguente? Spiegare dove vi siete
> documentati.
>   #  alias cp=’cp -i’ ; touch ~/pippo /tmp/pippo; cp  ~/pippo /tmp/pippo

  * Imposto un alias di cp in modo che esegua effettivamente cp -i;
  * Creo un file di nome pippo nella home dell'utente ed un file di nome
    nella directory /tmp;
  * Copio il file di nome pippo dalla home dell'utente nella directory /tmp;
  * L'alias di cp fa in modo di eseguire il comando cp -i ~/pippo
    /tmp/pippo invece del comando cp diretto.


> b1. (facoltativo) Ipotizzate motivando il contenuto della syscall
> execve() che viene eseguita da bash nel terzo comando del punto b
La syscall execve() esegue il comando cp passando come argomenti il -i e 
i due file riportati

> c. Come cambia il comportamento di  #cp
Il comportamento standarda di cp segue l'assunto dei sistemi *nix che e` 
"l'utente sa sempre cosa sta facendo". L'opzione -i invece cambia questo 
assunto facendo in modo che cp chieda conferma per la sovrascrittura del 
file

> d. Una volta impostato l'alias come posso eseguire #cp col suo
> comportamento standard?
Eseguendolo scrivendo il suo percorso assoluto sul disco (solitamente 
/bin/cp )

> e. Come posso accorciare il comando precedente usando la History Expansion?
Usando il tasto TAB per espandere i percorsi (non ho capito bene la 
domanda)?

Enrico
P.S. si, mi sono fatto venire la voglia di rispondere alla mail 
(l'alternativa era scrivere codice java e non ne ho assolutissimamente 
voglia) :P
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/latina/attachments/20130108/3dee04ca/attachment.html>


Maggiori informazioni sulla lista latina