web-dev-qa-db-fra.com

Empêcher l'écrasement accidentel des fichiers

Existe-t-il un moyen d'empêcher l'écrasement des fichiers si le fichier portant le même nom existe déjà?
Il devrait soit demander la confirmation du mot de passe root, soit simplement l'enregistrer sous un nouveau nom, comme le fait Windows, en ajoutant des numéros à des noms.

1
arjun

La meilleure méthode serait que vous appreniez à créer une copie vous-même avant de modifier un fichier.

Cela dit ...

Y a-t-il un moyen d'empêcher l'écrasement des fichiers

Oui. À partir de la ligne de commande, définissez l'attribut "immuable" (seul l'administrateur peut supprimer cette option) et personne ne pourra modifier le fichier (édition, suppression, déplacement, etc.). Tu fais ça avec ...

Sudo -i
{password}
chattr +i {file}

(-i pour l'enlever)

Soit il faut demander le mot de passe root

Ubuntu n'a pas de mot de passe root utilisable.

Vous pouvez modifier un fichier (même s'il est en lecture seule) si vous en êtes le propriétaire et si vous avez un accès en écriture au répertoire. Voir par exemple Pourquoi puis-je modifier un fichier en lecture seule? sur comment enregistrer à partir de vim. Il se plaindra ensuite que vous devez effectuer une action supplémentaire avant de pouvoir l'enregistrer.

Ce n'est pas exactement ce que vous avez demandé, mais c'est une méthode pour obtenir une sorte de notification avant de l'écraser.

ou simplement enregistrez-le sous un nouveau nom, comme le fait Windows, en ajoutant des numéros à des noms.

Vous aurez besoin d'un script pour cela lorsque vous le ferez en ligne de commande. Voici quelques exemples: https://stackoverflow.com/questions/12187859/create-new-file-but-add-number-if-fichename-already-exists-in-bash

2
Rinzwind