Voilà le topo, vous faites du Shell (si si, y en a) et vous devez pour d'obscures raisons ajouter le contenu d'un fichier (appelons le aCopier.txt) au début d'un autre (appelons le destination.txt).

Par exemple :

fly@dtc:~$ cat aCopier.txt
# Ho la belle ligne que je me dois de copier au début d'un autre fichier
# Entete,id,securities,ftt(French_Tax_Tobin)
fly@dtc:~$ cat destination.txt
bnp,7553,37426,130054874
cmcic,425,1271,99412364
ca,1103,17345,94577741
sg,211,914,4113647

Souvent les gens prennent le fichier destination, le copient à la fin du fichier à copier et remplace le fichier destination, ce qui se traduit souvent par un :

fly@dtc:~$ cat destination.txt >> aCopier.txt && mv aCopier.txt destination.txt
fly@dtc:~$ cat destination.txt
# Ho la belle ligne que je me dois de copier au début d'un autre fichier
# Entete,id,securities,ftt(French_Tax_Tobin)
bnp,7553,37426,130054874
cmcic,425,1271,99412364
ca,1103,17345,94577741
sg,211,914,4113647

J'y vois personnellement deux inconvénients :

  • L'opération n'est pas atomique[1]
  • On perd le fichier aCopier.txt dans l'opération.

Donc pour moi, la solution est plutôt : echo "$(<aCopier.txt)" "$(<destination.txt)" > destination.txt

Non seulement, cela a l'avantage d'être du Shell only (Bash ou KSH), mais il me reste le fichier à copier...

Notes

[1] Par atomique, j'entends qu'il y a plusieurs étapes successives et donc que pour un retour arrière, c'est plus embettant. D'autant plus à cause du point suviant...