& ldquo; mv file & rdquo; и теперь его не хватает

В окне терминала я набрал:

mv filename ..\..      [Note the wrong slash.]

Теперь я не могу его найти. Ушел. Я провел несколько поисков и просмотрел восстанавливаемые удаленные файлы. Ничего такого. Пуф. Мне подходит для использования машины с Windows прямо перед этим.

Кто-нибудь знает, куда он мог пойти?

32
задан 22 April 2015 в 01:26

3 ответа

Это никуда не пошло, в текущем каталоге. Это было переименовано как .... (четыре точки).

, Поскольку любое имя файла, имеющее . впереди, рассматривают скрытый файл, таким образом, это стало скрытым. Так, если Вы сделаете ls, то Вы не найдете его. Как всегда, Вам нужно -a (или -A) опция ls для просмотра скрытых файлов т.е. ls -a (или ls -A) для наблюдения его.

Позволяют мне сломать его, Вы работали mv filename ..\.., первые две точки означали бы родительский каталог, если бы это было ../, но Вы использовали наклонную черту влево ..\, который указывает на оболочку для выхода из следующего символа, но точка . не имеет никакого особого значения для окружения. Так, это будет рассматривать его как литерал . и последнее . также добавленный, таким образом, Вы получили четыре точки .... как имя файла.

Для возвращения назад к предыдущему (исходному) имени работайте mv .... filename.

71
ответ дан 22 April 2015 в 11:26

Выполненный mv .... filename переименовать его назад. (mv ..\.. filename работал бы также, но \ является лишним - как это было в Вашей исходной команде.)

  • Файл не был удален, который является, почему поиск восстанавливаемых удаленных файлов не нашел его.
  • Как в Windows, . и .. записи присутствуют в каждом каталоге и обращаются к "текущим" и "родительским" каталогам соответственно. Но в отличие от этого в Windows, последовательности больше чем двух точек не имеют никакого особого значения. Хотя это необычно, Вы совершенно свободны назвать обычный файл с именем, состоящим полностью из точек, пока это - по крайней мере три точки долго.
  • В отличие от этого, в Windows, в Ubuntu использование оболочки \ как символ ESC, гарантируя оболочку рассматривает следующий символ буквально вместо того, чтобы дать ему особое значение. . символ не имеет никакого особого значения в оболочке (в частности, оболочка не то, что ответственно за то, что сделало . и .. работа записей). Поэтому в Вашей команде, \. было эквивалентно ..
  • Как heemayl говорит, по умолчанию большинство утилит не показывает файлы и каталоги, имена которых запускаются с a .. С тех пор .... запускается с ., выполнение ls без -A или -a флаг не показал его.
13
ответ дан 22 April 2015 в 11:26

это находится все еще в том же каталоге, просто 'скрытый' файл теперь. Можно восстановить его "mv.... имя файла".

5
ответ дан 22 April 2015 в 11:26

Другие вопросы по тегам:

Похожие вопросы: