Неверная команда mv. Куда пропали мои файлы? [дубликат]

Если .profile действительно содержит:

SHELL=`type -p bash`
exec bash -l

И нет .bash_profile , у нас есть цикл. Ваша оболочка входа в систему (скажем, / bin / sh , возможно) читает .profile , что приводит к exec bash в качестве оболочки входа. Bash при запуске в качестве оболочки входа в систему читает .bash_profile , а если он отсутствует, .profile . Таким образом, он также будет читать выполнение этих команд, что приводит к exec bash в качестве оболочки входа в систему. Bash при запуске в качестве оболочки входа в систему….

Это может быть более разумный способ сделать это:

if [ -z "${BASH_VERSION}" ];
then
    SHELL=`type -p bash`
    exec bash -l
fi

Хотя вместо подобных хаков вам следует попросить системного администратора установить bash в качестве оболочки входа в систему (при условии, что вы не можете сделать это самостоятельно, используя chsh ).

36
25.11.2018, 02:47
4 ответа

Для справки в будущем: если вы добавите / в конец пути, команда завершится ошибкой, если целевой каталог не является ранее существовавшим каталогом, например mv foldername .. ../

3
27.01.2020, 19:36

Правильная форма была бы

mv folder_name ../..

Вы переместили папку в новую папку с именем .... ; чтобы восстановить файлы, выполните

mv .... folder_name

Как и многие другие команды, mv несколько опасно, потому что ошибки могут в некоторых случаях привести к невосстановимой потере данных (за исключением резервных копий): все, что в конечном итоге интерпретируется как «переместить эти файлы в этот файл», приведет к потере всех файлов, кроме последнего (каждый файл будет переименован в свою очередь в целевой). Чтобы предотвратить такие ошибки, существует ряд методов:

  • используйте -i, которые говорят mv запрашивать подтверждение перед перезаписью;
  • используйте -t для указания целевой папки (поэтому mv будет перемещаться только в целевую папку);
  • используйте / в конце имени целевой папки.
40
27.01.2020, 19:36

Вы только что переименовали папку в .... , и так как начинается с . , теперь она скрыта.

тип mv .... имя_папки для его восстановления

Вы также можете ввести ls -la, чтобы перечислить его (поскольку -a печатает скрытые файлы)

Правильный способ убывания файлов и папок двух каталогов — mv fileorfolder .. /.. /

7
27.01.2020, 19:36

Ваш каталог все еще там :)

Вы переименовали его ....

Поскольку файлы, имена которых начинаются с . являются скрытыми, вы не сможете увидеть каталог, если не отобразите скрытые файлы

запустите

ls -A

и вот он!

Верните изменение:

mv .... original_folder_name

и сделайте перемещение правильно

mv original_folder_name ../..
90
27.01.2020, 19:36

Теги

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