est-il possible sous Linux (et / ou sur un autre fichier de rétrécissement) de début de début? J'aimerais l'utiliser pour une file d'attente persistante (aucune implémentation existante convient à mes besoins). De fin de fichier, je suppose que c'est possible avec tronquage (). P>
3 Réponses :
J'ai un fichier tronqué donné comme argument à 64 000 000 octets à l'aide du script Python suivant:
#!/usr/bin/env python import sys import os file = sys.argv[1] f = os.open(file, os.O_RDWR) os.ftruncate(f, 64000000) os.close(f)
Cela va couper la fin du fichier et l'OP a spécifiquement demandé de couper le début du fichier.
Oui, vous pouvez utiliser Cela émettra le contenu de Input_File à partir de la 17ème octet, en supprimant efficacement les 16 premiers octets du fichier. Notez que l'exemple couper code> ou
queue code> pour supprimer des portions d'un fichier. p>
CUT -B 17- INPUT_FILE CODE>
Tail -C +17 INPUT_FILE CODE> P>
Cut CODE> ajoutera également une nouvelle ligne à la sortie. p>
Je m'intéressé à une mise à jour continue du dossier sur place grâce à un appel système. Ce que vous suggérez n'est pas ça.
Dans ce cas, vous pouvez consulter les appels système que les commandes ci-dessus font via strace code> et ne font que la "viande" de l'opération et non toutes l'analyse de la ligne de commande, etc.
Si vous utilisez EXT4, XFS ou un autre système de fichiers moderne, car Linux Kernel 3.15, vous pouvez utiliser: avec le drapeau code> Falloc_fl_collapse_range code> drapeau "/ p> http://manpages.ubuntu.com /Manpages/disco/fr/man2/fallocat.2.html P> P>
J'ai commencé à googler «tronquée» après avoir écrit ce post et il semble que ce n'est pas possible.