J'ai renommé quelques fichiers en un seul script. Existe-t-il un moyen d'annuler les modifications sans avoir à les renommer?
Est-ce que Linux fournit un moyen d’ undo
ing native ?
command-line
Lazer
la source
la source
Réponses:
Linux (comme les autres unices) ne fournit pas nativement de fonctionnalité d'annulation. La philosophie est que si c'est parti, c'est parti. Si c'était important, il aurait dû être sauvegardé.
Il existe un système de fichiers fusible qui conserve automatiquement les copies des anciennes versions: copyfs , disponible dans toutes les bonnes distributions. Bien sûr, cela peut utiliser beaucoup de ressources.
Le meilleur moyen de se protéger contre de tels accidents est d'utiliser un système de contrôle de version (CVS, Bazar, Darcs, Git, Mercurial, Subversion, ...). Il faut un peu de temps pour apprendre, mais cela porte ses fruits à moyen et long terme.
la source
Malheureusement non.
la source
-i
optionrm
activée par défaut. Mes systèmes Unix ne doivent pas me tenir la main.Non, il n'y a pas d'annulation magique dans Unix. Unix suppose que vous savez ce que vous faites. Pour le support d'annulation, utilisez un VCS (votre éditeur de texte l'a probablement aussi intégré).
La plupart des systèmes de fichiers n'ont pas la capacité de le faire de manière transparente.
Time Machine et la restauration du système sous Mac et Windows, respectivement, ne sont que des systèmes de contrôle de sauvegarde / modification.
la source
Il n'y a pas d'annulation dans la ligne de commande. Vous pouvez cependant exécuter des commandes en tant que
rm -i
etmv -i
. Cela vous demandera avec un "êtes-vous sûr?" question avant qu'ils exécutent la commande.Il est également possible d'ajouter un alias à un script de démarrage (par exemple
~/.bashrc
ou/etc/bash.bashrc
):Edit: par les suggestions ci-dessous, j'ai retiré mon conseil d'aliaser les commandes par défaut. Au lieu de cela, il introduit de nouvelles commandes maintenant).
la source
mv -i
demande uniquement quand il écraserait un fichier (ce qui le rend utile et non odieux). Dans la même veine,alias cp='cp -i'
.La raison pour laquelle les systèmes Linux / Unix n’ont pas de suppression permanente vient de la manière dont la plupart des systèmes de fichiers stockent leurs informations. Les méta-informations de fichier sont toutes stockées à l'avant du disque avec des références à des inodes sur le reste du disque. Généralement, la plupart des systèmes de fichiers allouent 10 blocs à un fichier de cette méta-zone. Les 7 premiers font référence aux 7 premiers inodes. Les 8ème et 9ème vont à des listes d'inodes (blocs à double liaison) et le 10ème à une liste de listes de listes (à trois blocs liés). Cela varie d'un système de fichiers à l'autre (ext4, jfs, xfs, etc.), mais ces listes de blocs peuvent généralement traiter des fichiers dont la taille varie de 2 Go à plusieurs To.
Mais comme toutes ces informations sont stockées à l'avant du disque, lorsqu'un fichier est effacé, il est impossible de référencer les inodes sur le disque à quelles méta-données elles appartiennent. En revanche, FAT32 et NTFS stockent certaines informations d'en-tête avec les fichiers eux-mêmes, ce qui facilite l'identification du fichier auquel un ensemble de blocs doit appartenir (tant que cet espace n'a pas encore été récupéré). Dans le travail Linux, lorsque vous supprimez quelque chose, c’est presque toujours la première chose à être immédiatement écrasée par de nouvelles données pour plus d’efficacité.
la source
Si vous voulez vraiment une fonction d'annulation, utilisez le contrôle de source. En fait, Subversion fonctionne très bien sur une machine à utilisateur unique. Je l'utilise pour contrôler tous mes fichiers personnels sur mon système domestique. Cela ressemble à une surdose, jusqu’au désastre, un script malicieux ou une faute de frappe en ligne de commande.
la source
rm -r .
bien. ;)rm -r project.git
. Heureusement, si vous gardez une autre version sur un serveur distant qui risque de ne pas arriverrm -r .
. Vraiment bête de moi.Une chose que j'aime ajouter à mon .bashrc est une fonction de copie et de suppression. Quelque chose comme:
Mais vous devez prendre l’habitude de taper cprm not rm.
Évidemment, vous devrez rester au-dessus de la zone supprimée si votre espace disque est limité.
la source
"$1"
.GitFS est un système de fichiers basé sur des fusibles, qui calcule automatiquement
diff
s entre les versions et permet de les restaurer / de les parcourir.Page Web: https://www.presslabs.com/gitfs
Docs: https://www.presslabs.com/gitfs/docs/usage/
la source