Dans une fenêtre de terminal, j'ai tapé:
mv filename ..\.. [Note the wrong slash.]
Maintenant je ne le trouve pas. Disparu. J'ai effectué des recherches et examiné des fichiers supprimés récupérables. Rien. Poof. Me sert juste pour utiliser une machine Windows juste avant.
Quelqu'un sait où il aurait pu aller?
find / -iname thefilename -print
peut être ?thefilename
le nom d'origine des fichiers, cettefind
commande ne la trouvera pas sous le nouveau nom.Réponses:
Il n’est allé nulle part, c’est dans le répertoire courant. Il a été renommé en
....
(quatre points).Comme tout nom de fichier ayant un
.
devant est traité comme un fichier caché, il est donc devenu caché. Donc, si vous le faitesls
, vous ne le trouverez pas. Comme toujours, vous avez besoin de l' option-a
(ou-A
)ls
pour afficher les fichiers cachés, c'est-à-direls -a
(ouls -A
).Laissez-moi le décomposer, vous avez couru
mv filename ..\..
, les deux premiers points signifieraient le répertoire parent si c'était../
, mais vous avez utilisé une barre oblique inversée..\
qui indique shell pour échapper au caractère suivant, mais un point.
n'a pas de signification spéciale à shell. Donc, il le traitera comme un littéral.
et le dernier sera.
également ajouté, donc vous aurez quatre points....
comme un nom de fichier.Pour revenir au nom précédent (original), exécutez
mv .... filename
.la source
la -A
(avec un A majuscule). Il fait la même chose quels -a
mais exclut.
et..
.Exécuter
mv .... filename
pour le renommer. ( Celamv ..\.. filename
fonctionnerait aussi, mais\
c'est superflu - comme c'était le cas dans votre commande d'origine.).
et les..
entrées sont présentes dans tous les répertoires et se réfèrent aux répertoires « courants » et « parent » respectivement. Mais contrairement à Windows, les séquences de plus de deux points n’ont aucune signification particulière. Bien que ce soit inhabituel, vous êtes parfaitement libre de nommer un fichier ordinaire avec un nom composé uniquement de points, à condition qu'il soit long d'au moins trois points.\
un caractère d'échappement, garantissant que le shell traite littéralement le caractère suivant plutôt que de lui attribuer une signification particulière. Le.
caractère n'a pas de signification particulière dans le shell (en particulier, le shell n'est pas responsable de la mise en œuvre des entrées.
et..
). Par conséquent, dans votre commande,\.
était équivalent à.
..
. Depuis....
commence avec.
, courirls
sans le drapeau-A
ou-a
ne l'a pas révélé.la source
il est toujours dans le même répertoire, juste un fichier 'caché' maintenant. Vous pouvez le récupérer par "mv .... nomfichier".
la source