Bases de Linux et de la ligne de commande

$ echo a > f.txt
$ echo b > f.txt
$ echo c >> f.txt
$ cat f.txt

Si l'on exécute dans l'ordre les commandes ci-dessus, quel contenu affiche le dernier cat ?

  1. AUniquement la ligne c
  2. BLes deux lignes b et c
  3. CLes trois lignes a, b et c
Afficher la réponse et l'explication

Réponse : B. Les deux lignes b et c

« > » est une redirection qui écrit la sortie dans un fichier ; si le fichier existe déjà, il est vidé avant l'écriture (écrasé). « >> » ajoute à la fin du fichier. La première ligne écrit a, le > de la deuxième ligne ne laisse que b, et le >> de la troisième ligne ajoute c à la suite : f.txt contient donc les deux lignes b et c. Pour éviter d'effacer un fichier important par un >, bash permet aussi d'interdire l'écrasement avec set -o noclobber.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Comme ci-dessus, dans un répertoire où a.txt existe et nofile n'existe pas, on exécute la dernière commande. Quel est le résultat ?
  2. Dans la session ci-dessus, quelle valeur affiche la dernière commande ?
  3. Dans la session ci-dessus, quelles lignes affiche le dernier grep ?
  4. Les choix sont donnés sans les espaces en début de ligne. Dans la session ci-dessus, quelle ligne affiche le dernier enchaînement de commandes ?
  5. On veut afficher en continu à l'écran les lignes ajoutées par la suite au fichier journal du serveur /var/log/app.log, au fur et à mesure de leur ajout. Quelle commande convient ?