Я случайно запустил команду mv в папке, чтобы переименовать файлы. Но я забыл указать абсолютный путь (я просто сделал mv old_name new_name). Теперь файлы исчезли. Есть идеи, где эти файлы?

Спасибо за любую помощь.

2 ответа2

4

Они будут в одном и том же каталоге, если вы не указали какое-либо обозначение каталога, например .. или ../..

Таким образом, mv oldFile newFile остается в том же каталоге (в основном переименовывая его),

Примечание . Если newFile уже существует, вы просто перезаписали его - mv не будет спрашивать перед этим, если вы не укажете -i в качестве аргумента.

mv oldFile ../newFile перемещает его в родительский каталог,

mv oldFile ./existingSubDirectory/newFile перемещает его в каталог существующиеSubDirectory с именем newFile,

mv oldFile -p ./newSubDirectory/newFile создает новый подкаталог с именем «newSubDirectory» и помещает в него новый файл.

Вы можете объединиться, чтобы сделать какой-то очень странный (и вообще бессмысленный) обход каталога, такой как mv oldFile ././././../../dev/null если вы действительно хотели, но это очень мало смысла.

1

Если вы не указали полный путь, они находятся в позиции относительно пути, над которым вы работали.

Если вы находитесь в своем каталоге пользователей (/home/user) и запускаете mv myfile newfile , находясь в этом каталоге, файл переименовывается в newfile . Если он существует, он перезаписывается. Если вы указали часть пути (mv myfile something/newfile) и папка не существует, вы получите ошибку. Если бы вы указали -p папку, something что- то было бы создано.

Если вы знаете имя, вы можете использовать find или другую утилиту для поиска файла (в Debian вы можете использовать locate).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .