Donc, je travaille dans un environnement UNIX et j'ai remarqué que dans mon répertoire de travail, qui est à des kilomètres de ma maison UNIX, il y a un ~
.
Maintenant, une fois dans le passé, je l'ai fait à rm -rf ~
partir de mon répertoire de travail et j'ai fini par effacer complètement mon répertoire personnel et j'ai dû impliquer l'informatique.
Je ne veux pas recommencer. En même temps, je veux savoir
Pourquoi est
~
créé dans mon répertoire de travail? Est-ce un glissement de doigt défectueux lors de l'enregistrement (:w!
mais que se passe-t-il:w~
? !!)Avant l'archivage, il existe un script qui recherche des fichiers ou des dossiers supplémentaires que p4 ne connaît pas, donc cela
~
pourrait provoquer un problème. Alors, comment puis-je supprimer le~
de mon répertoire de travail et en même temps ne pas effacer ma maison?
J'ai une commande de sauvegarde appelée del
que j'utilise à la place de rm -rf
. Il place simplement les choses dans un emplacement temporaire. Je pourrais l'utiliser et me débarrasser du ~
. Mais je suis plus intéressé à savoir pourquoi cela se produit et comment puis-je le supprimer?
/home/yourUserName/~
pour accéder au répertoire appelé~
.Réponses:
Soit le citer:
Ou référencez-le par un chemin, au lieu d'un simple nom de base:
Notez que, bien qu'il s'agisse d'un nom de personnage unique à l'allure amusante, ce n'est conceptuellement pas différent que si vous aviez créé un fichier nommé
SOME$PATH
en faisantEt j'ai essayé de le supprimer en faisant:
( Attention: la variable
SOME$PATH
n'est pas citée ici pour le bénéfice de l'exemple. Elle serait normalement placée entre guillemets'SOME$PATH'
)Dans les deux cas, le shell étend le nom que vous donnez et vous devez empêcher cela.
Aussi: Ne pas utiliser
rm -rf
pour supprimer un fichier! Le but derm -r
est de direrm
qu'il est OK de supprimer des répertoires. Si vous ne voulez pas supprimer accidentellement des répertoires entiers en essayant de supprimer des fichiers, ne passez pas habituellement-r
!la source
:w~
dans vim a créé un fichier appelé~
.rm ~
retournécannot remove /home/seth it is a directory
.rm "~"
a supprimé le fichier . Juste pour souligner , ne passe pas-rf
automatiquement .kill -9
par défaut, ce que j'ai vu.rm -i $FOO
ne cite pas intentionnellement la variable pour le bien de l'exemple, mais quand même: montrer un exemple de shell impliquantrm
et une variable non citée comme argument est TRÈS MAUVAIS , euh, désolé, indépendant du contexte. Je suis sûr que cela peut même être prouvé :) J'ajouterai une note - mais peut-être pourriez-vous changer l'exemple, un peu?SOME/bin:/usr/bin
n'importe où sur leur système de fichiers. :)Le tilde utilisé seul dans le contexte de
ls ~
listera votre répertoire personnel comme ~ est un raccourci vers votre répertoire personnel. Si vous l'avez fait,ls ~brown
vous listerez le contenu du répertoire personnel de brown.VIM, sauf indication contraire, créera une copie de sauvegarde d'un fichier modifié: myFile myFile ~.
Ce comportement est bon car il crée une sauvegarde mais si vous ne le souhaitez pas, ajoutez-y le fichier .vimrc: ne définissez aucune sauvegarde (avec laquelle je viens d'accéder
vi ~/.vimrc
).Et bien sûr, comme d'autres l'ont dit, si vous avez un fichier appelé ~, échappez simplement au caractère en tant que \ ~
la source
Cela pourrait être dû à des erreurs de frappe. Si votre
TERM=xterm
configuration ressemble à la mienne, pratiquement chaque touche de fonction de votre clavier enverra des séquences d'échappement comme ...Plus de la moitié de la sortie de
infocmp -1
contient des échappements de~
tilde sur ma machine - et je ne comprends pas ce que la plupart d'entre eux font. Je sais qu'auzsh
moins mange en fait la partie échappée de la chaîne dans la plupart des cas - et ne laisse que le~
tilde .Par exemple, en tapant
echo
puis<space>
puisF6
et<return>
imprime ...La séquence d'échappement réelle envoyée est ...
Fait intéressant, il existe d'autres de ces séquences d'échappement qui contiennent des
>
caractères.Ce sont des échappements couramment utilisés - chaînes de réinitialisation et d'initialisation. Il n'est pas difficile d'imaginer qu'un clavier ou une touche enfoncée de quelque sorte lorsqu'un shell interactif attend une entrée puisse entraîner des
~
fichiers tronqués de manière aléatoire dans tout votre système de fichiers. Au moins, il surgit de temps en temps sur le mien.la source