Рейтинг:-1

Файл ушел по команде mv:

флаг us

я пытался двигаться файл.py в существующий каталог Modules...

wm@my-laptop:~/Desktop/1linuxandpython$ mv Modules_and_packages.py /Modules_and_packages_Game

он сказал, что разрешение отклонено, поэтому я сделал это:

wm@my-laptop:~/Desktop/1linuxandpython$ sudo mv Modules_and_packages.py /Modules_and_packages_Game

затем он исчез, я искал ответ и обнаружил, что имя файла /Modules_and_packages_Game сейчас, но нигде не могу найти. И как это возможно для .py быть именами как имя папки?

редактировать:

введите описание изображения здесь

лс -л показать имя папки, и когда я ее запускаю, она открывается как файл.py зная, что перед выполнением команды:

$ sudo mv Modules_and_packages.py /Modules_and_packages_Game

я был уверен, что там есть папка Modules_and_packages_Game?

Artur Meinild avatar
флаг vn
Появляется ли он, если вы делаете `ls /`?
guiverc avatar
флаг cn
Вы использовали `mv` для перемещения и переименования файла; выполненная команда была именно тем, что вы сказали, даже если это не было вашим намерением. Он расположен в каталоге `/`, как вы сообщили
Рейтинг:10
флаг in

Цель вашего мв команда /Modules_and_packages_Game. Это абсолютный путь.

  • Если путь существует и является каталогом, мв переместит исходные файлы в этот каталог.
  • Если путь НЕ существует, исходный файл будет переименован в целевое имя.

Сравнивать мужчина мв и увидеть три возможных формы выполнения мв:

СИНТАКСИС
  mv [ОПЦИЯ]... [-T] ИСТОЧНИК НАЗНАЧЕНИЕ
  mv [ВАРИАНТ]... ИСТОЧНИК... КАТАЛОГ
  mv [ОПЦИЯ]... -t ИСТОЧНИК КАТАЛОГА...
ОПИСАНИЕ
  Переименуйте SOURCE в DEST или переместите SOURCE(s) в DIRECTORY.

Скорее всего, вы использовали первую форму (переименовать SOURCE в DEST), а хотели вторую форму (переместите SOURCE в DIRECTORY).
Ваш файл теперь находится в папке / (корень вашей файловой системы) с именем Модули_и_пакеты_Игра.

Проверьте с помощью ls -l /Modules_and_packages_Game.

Чтобы вернуться назад, выполните:

sudo mv /Modules_and_packages_Game Modules_and_packages.py

Теперь сделайте это правильно. Я предполагаю, что ваш целевой каталог является относительным путем Модули_и_пакеты_Игра, а не абсолютный путь /Modules_and_packages_Game.

Либо (используя вторую форму):

mv Modules_and_packages.py Modules_and_packages_Game

или (используя третью форму):

mv -t Modules_and_packages_Game Modules_and_packages.py

Последний более безопасен, так как выдаст ошибку, если целевой каталог не существует.

Marinos TBH avatar
флаг us
На самом деле файл теперь представляет собой папку . когда я: ls или ls -l, появляется синяя папка, и для доступа к ней мне просто нужно /Modules_and_packages_Game, чтобы он скомпилировал ./file.py
pLumo avatar
флаг in
Файл не может быть каталогом после `mv`. Тогда каталог существовал раньше, и вы переместили свой файл в этот каталог.
Marinos TBH avatar
флаг us
Смотрите скриншот ниже, пожалуйста.
pLumo avatar
флаг in
Вы ошибаетесь, вы запускаете перемещенный файл с `/Modules_and_packages_Game`. Это именно так, как я сказал. То, что вы видите (синий каталог), — это относительный путь `Modules_and_packages_Game`, который **не совпадает** с `/Modules_and_packages_Game`.
Рейтинг:1
флаг jp

Как другие указывают на вас, вы путаете родственник пути против. абсолютный пути. Примите во внимание следующие соображения:

  1. Одинокая косая черта / это корневая директория. Думайте об этом как о папке, которая находится поверх всех других папок, то есть каждая папка и файл в вашей системе находится где-то внутри / каталог.
  2. Ан абсолютный путь это путь от корневого каталога к файлу или папке. Таким образом, он всегда начинается с /, который является корневым каталогом и заканчивается файлом или папкой, к которой вы хотите получить доступ. Пример абсолютного пути к файлу:
/home/имя пользователя/Рабочий стол/myFile.txt
  1. тильда ~ это ярлык, который представляет ваш домашний каталог. Таким образом, с помощью этого ярлыка можно получить доступ к файлу где-то в вашей домашней папке, и приведенный выше пример может быть таким:
~/Рабочий стол/myFile.txt
  1. Текущий каталог или же рабочий каталог тот, над которым вы сейчас работаете. Обычно он отображается в командной строке Bash синим цветом между точкой с запятой. : и знак доллара $. Например, если вы сейчас работаете над своим Рабочий стол папке приглашение Bash в Терминале будет выглядеть так:
имя пользователя@имя хоста:~/Рабочий стол$
  1. А относительный путь можно использовать, когда файл или папка, к которым вы хотите получить доступ, находятся внутри вашего текущего рабочего каталога. В этом случае вы не должны начинать путь с /, потому что это означало бы, что путь является абсолютным путем, начинающимся в корневом каталоге. Например, если вы уже работаете над Рабочий стол папку, вы можете прочитать содержимое мой файл.txt файл, просто набрав его имя.
имя_пользователя@имя_хоста:~/Desktop$ cat myFile.txt
  1. Текущий каталог может быть представлен одной точкой .. Таким образом, чтобы предотвратить ошибки и убедиться, что вы ссылаетесь на относительный путь, вы можете начинать относительные пути с ./ представлять что-то внутри текущего каталога, например:
имя_пользователя@имя_хоста:~/Desktop$ cat ./myFile.txt
  1. каталог над вашим рабочим каталогом представлен двумя точками ... Таким образом, если вы находитесь в папке «Загрузки», но хотите получить доступ к своему файлу на рабочем столе, вы можете использовать следующий относительный путь:
имя_пользователя@имя_хоста:~/Downloads$ cat ../Desktop/myFile.txt

В качестве еще одного примера, если мой файл.txt находится внутри какая-то папка каталог на рабочем столе, то вы можете прочитать его содержимое, используя:

  • Относительный путь (без косой черты в начале):
имя_пользователя@имя_хоста:~/Desktop$ cat someFolder/myFile.txt
  • Относительный путь с точкой, чтобы избежать путаницы:
имя_пользователя@имя_хоста:~/Desktop$ cat ./someFolder/myFile.txt
  • Абсолютный путь (с косой чертой в начале):
имя_пользователя@имя_хоста:~/Desktop$ cat /home/username/Desktop/someFolder/myFile.txt
  • Абсолютный путь с ярлыком домашнего каталога:
имя_пользователя@имя_хоста:~/Desktop$ cat ~/Desktop/someFolder/myFile.txt

Пожалуйста, потренируйтесь с этим, затем вернитесь, и вы поймете другие ответы.

Короче говоря, ваш файл теперь находится в вашем корневом каталоге, и его имя совпадает с именем папки, в которую вы пытались его поместить. Таким образом, абсолютный путь к файлу теперь /Modules_and_packages_Game (это все еще файл python, в нем просто отсутствует .py расширение, потому что вы случайно изменили его имя). Это отличается от папки, которая у вас есть в ~/Desktop/1 шаги для Linux и Python/Modules_and_packages_Game. Чтобы поместить файл python в эту папку и изменить его имя, используйте:

mv /Modules_and_packages_Game "~/Desktop/1 шаги Linux и Python/Modules_and_packages_Game/Modules_and_packages.py"

(Обратите внимание на двойные кавычки " необходимы, потому что у вас есть пробелы в пути.)

Marinos TBH avatar
флаг us
Благодарен за такой ответ, я полностью понимаю, как работает навигация по каталогам. В противном случае я получил это: mw@my-laptop:~$ mv /Modules_and_packages_Game "~/Desktop/1 шаги Linux и Python/Modules_and_packages_Game/Modules_and_packages.py" mv: невозможно переместить '/Modules_and_packages_Game' в '~/Desktop/1 linux и python steps/Modules_and_packages_Game/Modules_and_packages.py': такого файла или каталога нет
Alejandro avatar
флаг jp
Дважды проверьте оба абсолютных пути, чтобы увидеть, какой из них неверен, и настройте его в соответствии со своими потребностями. Возможно, вам придется использовать `sudo` перед `mv`. или используйте `cp` вместо `mv`. Возможно, это папка «1linuxandpython», а не «1 шаг Linux и Python», в вашем вопросе есть и то, и другое. Вы можете проверить с помощью `ls` и автоматически заполнить допустимые пути в Терминале с помощью Вкладка ключ.
Marinos TBH avatar
флаг us
ОК, наконец, это сработало (я удалил двойные кавычки и перешел к «1 шагам Linux и Python» и использовал sudo ) sudo mv /Modules_and_packages_Game ~/Desktop/'1 шаг Linux и Python'/Modules_and_packages_Game/Modules_and_packages.py. Modules_and_packages.py есть, а /Modules_and_packages_Game больше не является исполняемым. Спасибо за помощь, пусть каждый найдет такие объяснения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.