8 votes

J'ai accidentellement utilisé "touch " existe-t-il un moyen de supprimer ce document en toute sécurité ?

J'utilise zsh, MacOS 11.0.1 (Big Sur), je travaillais sur un projet et pour une raison stupide, j'ai décidé d'écrire touch .. . Un fichier a été créé sur le Bureau, je ne pense donc pas que cela affectera les performances de l'ordinateur de quelque manière que ce soit.

J'ai essayé de faire vim .. et un document a été ouvert.

Il contient tellement de choses que ce n'est pas celui que je viens de créer, aussi sur le dessus j'ai lu /Users/Serax au lieu de /Users/Serax/Desktop .

Je ne veux pas endommager ou supprimer quelque chose que je ne devrais pas. J'ai essayé d'utiliser mv .. my_stupid_mistake.txt mais ça n'a pas marché.

J'ai également vérifié Desktop dans le finder mais je n'ai rien trouvé.

Est-ce que c'est sûr de faire rm .. ?

11 votes

Le fichier a été créé sur le bureau" - c'est-à-dire que vous regardez votre bureau dans l'interface graphique et que vous voyez l'icône d'un fichier intitulé "fichier". .. ? Pouvez-vous poster une capture d'écran ? touch .. n'aurait pas dû avoir cet effet.

0 votes

Je seconde la demande de @user2357112. Pour info, je viens de faire cd ~/Desktop y touch .. sur mon Mac, et tout ce qu'il a fait, c'est mettre à jour l'horodatage de la dernière modification de mon répertoire personnel (comme il se doit).

21voto

Gordon Davisson Points 30215

Faites pas supprimez-le ! Dans les systèmes de fichiers unixiens (y compris MacOS), .. est un lien vers le répertoire parent. Donc si vous étiez dans le répertoire /Users/Serax/Desktop et tu as couru touch .. c'est l'équivalent de touch /Users/Serax qui indique simplement que votre répertoire personnel a été modifié.

De même, lorsque vous êtes dans /Users/Serax/Desktop en essayant de supprimer .. est équivalent à essayer de supprimer votre répertoire personnel. Si vous réussissez, vous perdrez tous vos fichiers. Vous ne voulez pas faire cela.

En cours d'exécution touch La commande n'aura rien endommagé, il n'y a donc rien à réparer, à supprimer ou à nettoyer. Il suffit de vaquer à ses occupations.

BTW, avez-vous une bonne sauvegarde ? Si non, je vous recommande vivement d'en faire une. Parce que les accidents arrivent, et parfois vous supprimez tout votre répertoire personnel par erreur.

0 votes

Lire ce que fait une commande avant son utilisation tend à réduire les accidents...

6 votes

Je suis d'accord qu'il est important d'être prudent à ce sujet, mais dans ce cas particulier, le PO était conscient du problème (d'où la question ici). Je pense que ce n'est pas un cas de panique, cependant, puisque rm (même avec les commutateurs -rf) protège contre la suppression de .. : $ rm -f .. rm : "." et ".." ne peuvent pas être supprimés

0 votes

@jstarek C'est vrai, mais le PO cherchait des méthodes alternatives, donc il y a un risque qu'ils aient trouvé un moyen de faire quelque chose à .. et ça n'aurait probablement pas été bon.

15voto

theonlygusti Points 6434

touch .. n'a pas créé de fichier. C'est impossible sous MacOS car le nom .. est déjà pris et fait référence au répertoire parent.

Vous n'avez donc pas créé de nouveau fichier, et vous n'avez pas besoin de supprimer quoi que ce soit.

Votre touch .. ne modifie en fait que certaines des métadonnées associées au répertoire parent (dans votre cas, il s'agit du répertoire Desktop lui-même) :

Il a mis à jour le

  • Heure du dernier changement
  • heure de la dernière modification
  • dernière heure d'accès

Au moment où vous avez couru touch .. . Vous devriez être en mesure de voir ces changements en exécutant stat -x .. .


Parfois, le Finder peut afficher des fichiers appelés .. par exemple, peut-être comme ceci :

enter image description here

Cependant, ce fichier n'est pas vraiment nommé .. c'est juste que le Finder cache son extension.

Ouvrez le Finder > Préférences... > Avancées, et activez la case à cocher "Afficher toutes les extensions de fichiers" pour voir quel est son véritable nom (par exemple, il peut être ...png )

9voto

Tetsujin Points 95239

touch crée simplement un nouveau fichier vide si un fichier existant n'est pas spécifié. S'il est spécifié, il mettra à jour la date de dernière modification.

Comme vous l'avez créé sur votre bureau, je suis sûr que le plus simple serait de le saisir et de le glisser dans la corbeille pour éviter de faire d'autres erreurs ;)
Cela ne posera aucun problème.

rm a des conséquences pour les imprudents qu'un simple glisser-déposer n'a pas.

  • . signifie le répertoire actuel
  • .. désigne le répertoire situé au-dessus de l'emplacement actuel

Si vous n'êtes pas sûr de savoir où vous êtes, rm .. pourrait être quelque peu chaotique, car elle supprimera (potentiellement tous) les fichiers du répertoire suivant.

0 votes

JOKE : et moi qui pensais que rm était le nouveau programme Reminder...

0 votes

@SolarMike - Un raccourci pour "Wake me at 2 o'clock" ? ;))))

8 votes

Toutes les implémentations de rm que j'ai vues jusqu'à présent ne sont pas récursives par défaut, je ne pense donc pas que rm .. serait désastreux, il devrait simplement lancer une erreur. Vous pouvez tester ceci en créant un dossier et en essayant de le supprimer avec rm .

5voto

Salocor Points 491

Ne cours pas. rm .. ! !!

Je viens de faire exactement la même chose et ça n'a pas vraiment créé de fichier. Si vous exécutez vim .. vous obtiendrez une liste de dossiers tels que l'ordinateur les reconnaît. .. comme le répertoire précédent.

Vérifiez dans le Finder et vous devriez voir qu'il n'y a pas de fichier . S'il y a un fichier, essayez de l'ouvrir dans TextEdit avec le Finder plutôt qu'avec le terminal et s'il est vide, vous pouvez le supprimer en toute sécurité.

Mais, encore une fois, ne courez pas rm .. ! !!

12 votes

Pourquoi ? rm .. est garantie d'échec. Ça ne semble pas être une raison pour mettre des majuscules et des points d'exclamation.

2 votes

rm .. : rm: "." and ".." may not be removed -- ok, essayons -f : rm -f .. : rm: "." and ".." may not be removed -- ok, c'est un répertoire, donc -r : rm -rf .. : rm: "." and ".." may not be removed -- Ce n'est pas vraiment une surprise, puisque la page de manuel dit que "C'est une erreur de tenter de supprimer les fichiers '' '' ou '' ''". C'est avec le rm sur mon Mac. GNU rm donne des messages d'erreur différents, mais le résultat est le même.

4voto

penguin359 Points 141

J'écris ceci parce que j'ai l'impression que la réponse actuellement acceptée n'explique pas vraiment la situation de l'utilisateur. Si vous avez exécuté touch .. qui ne créerait pas un nouveau fichier sur votre bureau. Ce serait au mieux un no-op (aucune opération) et au pire une mise à jour de l'heure de modification du répertoire parent. C'est totalement inoffensif du point de vue de l'utilisateur et ne nécessite aucune réponse. Le nom de fichier .. fait simplement référence au dossier/répertoire parent de l'emplacement actuel, qui serait le répertoire personnel de l'utilisateur si le programme était exécuté depuis le bureau. touch .. ne créerait jamais un nouveau fichier car ce nom est toujours utilisé. Si l'utilisateur voit un nouveau fichier apparaître sur son bureau, c'est qu'il s'agit d'un événement totalement distinct et sans rapport avec l'exécution du programme. touch .. .

Quant à ce qui s'est passé avec vim .. Si vous essayez d'ouvrir un dossier comme un fichier texte, Vim affichera la liste des répertoires de ce dossier. Ce que l'utilisateur voit, c'est une liste complète de son répertoire personnel et la raison pour laquelle il voit Desktop dans le "fichier" qu'il a ouvert. C'est tout à fait normal et cela ne devrait pas poser de problème. Il n'y a aucune raison de tenter mv .. my_stupid_mistake.txt (qui échouera parce que vous ne pouvez pas déplacer un parent dans un enfant) ou rm .. . Cette commande échouera :

rm ..
rm: "." and ".." may not be removed

Donc, en résumé, ne vous inquiétez pas, vous n'avez rien fait de mal en exécutant la touche. C'est une commande relativement inoffensive. Le pire qu'elle puisse faire est de créer un fichier vide, mais dans ce cas, elle ne l'a même pas fait.

1 votes

Sauf que rm .. donne juste une erreur, même avec -r o -f . C'est requis par POSIX et décrite dans la page de manuel.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X