В окне терминала я набрал:
mv filename ..\.. [Note the wrong slash.]
Теперь я не могу его найти. Ушел. Я провел несколько поисков и просмотрел восстанавливаемые удаленные файлы. Ничего такого. Пуф. Служит мне прямо для использования машины с Windows прямо перед.
Кто-нибудь знает, где это могло бы быть?
find / -iname thefilename -print
может быть ?thefilename
в качестве исходного имени файла этаfind
команда не найдет его под новым именем.Ответы:
Это никуда не ушло, его в текущем каталоге. Он был переименован в
....
(четыре точки).Как и любое имя файла, имеющее
.
перед, рассматривается как скрытый файл, поэтому он стал скрытым. Так что, если вы это сделаетеls
, вы не найдете его. Как всегда, вам нужна опция-a
(или-A
),ls
чтобы просмотреть скрытые файлы, т.е.ls -a
(илиls -A
), чтобы увидеть ее.Позвольте мне разбить его, вы пробежали
mv filename ..\..
, первые две точки означали бы родительский каталог, если бы он был../
, но вы использовали обратную косую черту,..\
которая указывает на оболочку для перехода от следующего символа, но точка.
не имеет специального значения для оболочки. Таким образом, он будет обрабатывать его как литерал,.
а последний.
также будет добавлен, так что вы получите четыре точки....
в качестве имени файла.Чтобы вернуться к предыдущему (оригинальному) имени, запустите
mv .... filename
.источник
la -A
(с большой буквы). Это так же, как,ls -a
но исключает.
и..
.Беги,
mv .... filename
чтобы переименовать его обратно. (mv ..\.. filename
тоже будет работать, но\
это лишнее - как это было в вашей первоначальной команде.).
и..
записи присутствуют в каждом каталоге и ссылаются на «текущий» и «родительский» каталоги соответственно. Но в отличие от Windows, последовательности из более чем двух точек не имеют никакого особого значения. Хотя это необычно, вы можете свободно называть обычный файл с именем, состоящим полностью из точек, при условии, что он имеет длину не менее трех точек.\
escape-символ, гарантируя, что оболочка обрабатывает следующий символ буквально, а не придает ему особое значение. Символ.
не имеет особого значения в оболочке (в частности, оболочка не отвечает за работу.
и..
записей). Поэтому в вашей команде\.
было эквивалентно.
..
. Так как....
начинается с.
, запускls
без флага-A
или-a
не показал его.источник
он все еще находится в том же каталоге, просто «скрытый» файл. Вы можете восстановить его "mv .... filename".
источник