Як переходити між каталогами в терміналі?


26

Я новачок у Linux та Ubuntu і спробував змінити папки / каталоги з певними труднощами.

Чи може хтось пояснити, чому наступні команди не вдалося змінити до потрібної цільової папки / каталогу?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$

Відповіді:


38

Файлова система GNU / Linux - це як дерево, за винятком того, що корінь знаходиться вгорі. :-) Отже, у вас така структура, як:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

Якщо ви хочете переміститися всередині дерева, одним із варіантів є використання відносних шляхів. Якщо ви знаходитесь /home/sharon, то введення тексту cd Downloadsпрацюватиме, тому що завантаження - це безпосередньо дочірня частина вашого поточного каталогу. Якщо ви перебуваєте в підпапці Documentsі хочете змінити каталог ( cd) на Downloads, потрібно піднятися вгору ( ..), а потім в Downloads. Тож правильна команда була б cd ../Downloads.

Ви також можете ввести абсолютний шлях. Отже, Downloadsпапка - це підпапка, sharonяка є підпапком, homeяка є… (ви розумієте :-)) Тож ви також можете вводити, cd /home/sharon/Downloadsде ви знаходитесь у файловій системі.

  • ~завжди посилається на домашній каталог поточного користувача ( /home/sharonу вашому випадку). Якщо ви ввійдете, cd ~/Downloadsви приземлитеся у своїй Downloadsпапці.

  • .відноситься до поточного каталогу, тому cd ./Downloadsприблизно еквівалентний cd Downloads.

  • .. означає "батьківський каталог".

  • / на початку шлях файлу посилається на кореневий каталог.

Наступна приємна річ - розширення вкладок. Якщо ви введете cd ~/DowTab(останній натискає клавішу Tabulator), bash автоматично розширить його cd ~/Downloads.

Як говорили інші, GNU / Linux відрізняється від регістру. Таким чином, це має значення, якщо ви введете Home, hOmeабо home. Крім того, я сподіваюся, що зараз ви бачите, що є різниця між /homeі home. Перша адресована абсолютною, а остання відносно вашого поточного каталогу.


1
@ qbi: Нічого собі, ти приголомшливий. Мені подобається ваше детальне пояснення щодо навігації серед папок / каталогів. Ви вчитель чи професор у навчальному закладі? Більшість ІТ-хлопців знають багато матеріалів у сфері ІТ, але розбиття понять до керованих та «засвоюваних» шматочків, щоб новачки могли зрозуміти, це лише на увазі жменьки, але обдарованих хлопців, як Ви.
n00b

2
@ n00b Якщо ви знайшли цю відповідь корисною, ви можете "прийняти" її, натиснувши V ліворуч від неї.
Revetahw каже: Поновіть Моніку

8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

Маленька седілла ~ вказує, що ви вже знаходитесь у каталозі / home / sharon. Коли ви запитуєте "cd Home", термінал шукає / home / sharon / Home. Немає жодної.

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

Тепер ви просите, враховуючи провідну косу рису, перейти до каталогу над поточним розташуванням; тобто / додому / Головна. Немає жодної.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

Успіху!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

Я не дуже впевнений, де саме це. Якщо ви хочете перейти з / home / sharon / Документи на / home / sharon / Завантаження, будь ласка, спробуйте:

cd ~/Downloads

Якщо ви хочете перейти безпосередньо до вашого домашнього каталогу, тобто / home / sharon, просто зробіть:

cd

Також ви можете піти на крок назад

cd ..

Ви можете надрукувати каталог, з яким працюєте (друкувати робочий каталог)

pwd

@ chili555: Дякую за те, що допомагаю новачкам, як я. З Різдвом Христовим вам і вашим близьким.
n00b

2
Провідна риса вказує шлях відносно кореня, а не один над поточним каталогом. Це було б../
psusi

3

Команда говорить вам, чому: Немає такого каталогу.

Імена файлів залежні від регістру, тому це / home, not / Home. Без провідної косої риси передбачається, що вона є відносною поточного каталогу, і каталог завантажень знаходиться не в ~ / Документах, а також не в /, а у вашому домашньому каталозі, до якого ~є ярлик, тому це ~ / Документи.


@ psusi: Дякую і вам. З Різдвом Христовим вам і вашим близьким.
n00b

@ psusi: Що означає провідна коса риса?
n00b

@ psusi: Що означає ./ <ім'я файлу>?
n00b

@noob, /означає почати з кореневого каталогу та .означає поточний каталог.
psusi

0

Я повинен відповісти на це, тому що я не можу коментувати відповіді -.-

Що означає провідна коса риса? - n00b

це означає, що тонкий, про який ви говорите, - це каталог, а не файл. Файли не повинні мати закінчення файлів, як у Windows, тому ~/thisIsAFileце буде файл у вашому домашньому каталозі, але ~/thisIsAFile/це буде каталог / папка.

Що означає? - n00b

Це означає, що файл, до якого ви хочете отримати доступ, знаходиться у вашому поточному каталозі.

Інші корисні поради:

Ви можете повернутися до папки назад

cd ..

І ви можете отримати шлях, на якому ви перебуваєте (друкувати робочий каталог)

pwd

@ a2r: Дякую за пояснення. Я не знав, що файли не мають розширень файлів, як у Microsoft Windows. Чи мають програми також розширення файлів в Ubuntu?
n00b

Взагалі ні, системі не важливо, які закінчення має файл, якщо його позначено як виконуваний файл (google about chmod), то ви можете запустити його як програму. Також є глобальна змінна (Google про це) під назвою $ PATH. Є збережені каталоги перегляду (ви можете побачити, з якими вони є echo $PATH). І коли ви намагаєтеся запустити таку програму, як ви вводите geditтермінал. Ваша система виглядає кидати папки в $ PATH і шукає gedit.
a2r

1
Це був би кінець косою рисою, а не провідна риса. Крім того, ви повинні мати місце там перед ...
psusi

@ psusi: Вибач. Я тут трохи розгублений. Що таке косою косою рисою? провідна коса риса? Приклади, будь ласка? Заздалегідь спасибі.
n00b
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.