Зачем . / home / Desktop неправильный и ./Desktop правильно?

Я узнал о Linux, начал вчера. У меня вопрос, на который я не мог ответить из своей книги или Google. В чем разница между ./ и / в оболочке?

Я спрашиваю об этом, потому что, когда я запускаю, например, команду ./home/yogesh/Desktop/Books , я получаю эту ошибку:

 bash: ./home/yogesh/Desktop : No such file or directory 

Однако, удаляя точку, она дает

 /home/yogesh/Desktop/Books : Is a directory 

Или, если я запустил /Desktop , он вернется

 /Desktop : No such file or directory 

Но при добавлении точки до / , я получаю

 ./Desktop: is a directory 

В чем разница между ./ и / ?

4 Solutions collect form web for “Зачем . / home / Desktop неправильный и ./Desktop правильно?”

В unix (например, в Windows) /foo – это местоположение файла или каталога (абсолютное местоположение из корневого каталога: / ). В то время как ./foo – относительное местоположение (относительно текущего каталога) … Вы можете опустить ведущую точку + слэш и просто написать foo .

Набрав команду /Desktop или ./Desktop , вы сообщите оболочке выполнить Desktop … Что нельзя выполнить.

/Desktop не существует, поэтому сообщение об ошибке.

Принимая во ./Desktop , что ./Desktop , который является абсолютным местоположением /Home/YOURNAME/Desktop , существует. Но это каталог, а не исполняемый файл … Вероятно, вы забыли префикс с командой для запуска (обычно cd или ls )

Пример объяснения:

/ (косая черта) означает корень из корня файловой системы. Итак, /home/yogesh/Desktop/Books начинается с корня, затем проверяется на наличие home , под home проверкой на yogesh и так далее. Это называется абсолютным путем.

. (точка) означает начало из текущего каталога. Итак, если ваш текущий каталог /home/yogesh и вы проверяете ./Desktop , он есть. Это называется относительным путем.

В Unix и Unix-подобных системах . означает текущий каталог. Например, ls . то же самое, что и ls , он отобразит содержимое текущего каталога. Итак, когда вы запустите ./Desktop он находит каталог под названием Desktop который находится под вашим текущим каталогом. Затем вы получите сообщение об ошибке, указывающее, что это каталог и, следовательно, невозможно выполнить, поскольку это не команда.

/ является корнем файловой системы. Он похож на C:\ на Windows. При запуске /Desktop система будет искать каталог под названием Desktop который находится в каталоге / . Это не существует, и это говорит вам об этом.

Например, если я нахожусь в /home/yogesh и я хочу перейти в /home/yogesh , я могу либо использовать относительный путь (относительно каталога, в котором я сейчас), и запустить cd ./Desktop или cd Dessktop , или я могу использовать абсолютный путь и запустить cd /home/yoges/Desktop .

Первое не должно быть относительным местоположением.

Относительное местоположение – обозначать вещи короче из того места, где вы находитесь. Абсолютное местоположение – от корня /, который является первым местоположением каталога в Linux. Когда вы не находитесь в / var, вы можете использовать

 cd /var/www 

как / var / www абсолютное местоположение. Если вы находитесь в / var, вы можете использовать

 cd ./www 

или

 cd www 

Обозначить это еще короче.

Я рекомендую бесплатную книгу Уильяма Шотца.

Вот ссылка на эту книгу:

Командная строка Linux от William Shotts

  • «Xdg-mime query filetype» возвращает другой тип файла, чем «file -mime-type»
  • Как я могу распечатать все, кроме последних n символов в bash?
  • проверить скрипты оболочки
  • Вернитесь в каталог до cd-ing в домашний каталог
  • Написание функции bash для автозагрузки скриптов Matlab
  • Почему моя «дата» не может обрабатывать временные интервалы?
  • `top` не освежающий экран при выходе
  • Отсутствует символ ошибки компиляции - скрипт unix shell
  • Как включить историю команд ksh между сеансами
  • run bash не работает команда alias в zsh
  • Как это переформатирование текста происходит с ack?
  • Interesting Posts

    Как скачать .pdf файлы из pubmed

    Оптимизация сценария оболочки с длительным циклом работы

    Статистика использования процессора и ядра

    Почему этот RPM «uninstallable»?

    Могу ли я установить Mint, но установить язык установки, часовой пояс, имя пользователя / пароль и т. Д.?

    Bash Script: передача переменной в скрипт bash, содержащий кавычки, одинарные кавычки. и т.д.

    как заменить "/" в имени файла на "_"

    Как запустить термид с опцией –ignore-cpuid-check

    Как я могу подключить Wi-Fi к Linux mint 18?

    Первая сессия KDE

    Как настроить анонимно записываемый ftp-сервер с помощью vsftpd?

    Как остановить g ++ ссылку / включая старые системные заголовки / библиотеки из / usr / *?

    Debian на Chromebook – перезагрузка установщика

    Как автоматически подать два аргумента в программу после запуска?

    Как записывать все входные и выходные данные терминала в локальный файл по умолчанию для каждого сеанса?

    Linux и Unix - лучшая ОС в мире.