J'ai un fichier appelé error.log sur mon serveur que je dois souvent tronquer. J'ai des permissions pour le fichier. Ouvrir le fichier dans vi> supprimer tout le contenu> enregistrer des travaux (évidemment). Mais quand j'essaye le dessous
cat /dev/null > error.log
Je reçois le message
File already exists.
De toute évidence, une certaine configuration est effectuée sur le serveur pour empêcher le remplacement accidentel de fichiers. Quelqu'un peut-il dire comment je "tronque" le fichier en une seule commande?
Vous avez l'option noclobber
définie. L'erreur semble provenir de csh, vous feriez donc:
cat /dev/null >! file
Si je me trompe et que vous utilisez bash, vous devriez faire:
cat /dev/null >| file
en bash, vous pouvez aussi raccourcir cela pour:
>| file
Vous pouvez également utiliser la fonction tronquer
$truncate -s0 yourfile
si la permission est refusée, utilisez Sudo
$Sudo truncate -s0 yourfile
Aide/Manuel: man tronqué
testé sur Ubuntu Linux
Cela suffira pour définir la taille du fichier à 0:
> error.log
le mérite revient à mon collègue principal pour ceci:
:> filename
Cela ne cassera pas les fichiers journaux, vous pourrez même l'utiliser sur syslog, par exemple.
false | tee fileToTruncate
peut fonctionner aussi bien
Tout le monde peut essayer cette commande pour tronquer n’importe quel fichier dans système linux
Cela fonctionnera sûrement dans n'importe quel format:
truncate -s 0 file.txt