Что такое навигация по файловой системе

Обновлено: 21.11.2024

Мы узнали, как использовать pwd для определения нашего текущего местоположения в нашей файловой системе. Мы также узнали, как использовать cd для изменения местоположения и ls для просмотра содержимого каталога. Теперь мы изучим некоторые дополнительные команды для перемещения по нашей файловой системе.

Используйте команды, которые мы уже изучили, чтобы перейти в каталог shell_data/untrimmed_fastq, если вы еще этого не сделали.

Что, если мы хотим вернуться назад и выйти из этого каталога в наш каталог верхнего уровня? Можем ли мы ввести cd shell_data ? Попробуйте и посмотрите, что получится.

Ваш компьютер искал каталог или файл с именем shell_data в каталоге, в котором вы уже находились. Он не знал, что вы хотите посмотреть на уровень каталога выше того, в котором вы находились.

У нас есть специальная команда, которая сообщает компьютеру, что нужно переместить нас назад или вверх на один уровень каталога.

Теперь мы можем использовать pwd, чтобы убедиться, что находимся в каталоге, к которому собирались перейти, и ls, чтобы проверить правильность содержимого каталога.

Из этого вывода видно, что .. действительно возвращает нас на один уровень назад в нашей файловой системе.

Вы можете связать их вместе следующим образом:

распечатывает содержимое /home .

Поиск скрытых каталогов

Сначала перейдите в каталог shell_data. В этом каталоге есть скрытый каталог. Изучите параметры ls, чтобы узнать, как увидеть скрытые каталоги. Перечислите содержимое каталога и определите имя текстового файла в этом каталоге.

Подсказка: скрытые файлы и папки в Unix начинаются с . , например .my_hidden_directory

Решение

Сначала используйте команду man, чтобы просмотреть параметры ls .

Опция -a является сокращением от all и говорит, что она заставляет ls «не игнорировать записи, начинающиеся с ». Это тот вариант, который нам нужен.

Имя скрытого каталога — .hidden . Мы можем перейти в этот каталог, используя cd .

А затем выведите список содержимого каталога с помощью ls .

Имя текстового файла — youfoundit.txt .

В большинстве команд флаги можно комбинировать в произвольном порядке для получения желаемых результатов/вывода.

Просмотр содержимого других каталогов

По умолчанию команды ls выводят список содержимого рабочего каталога (то есть каталога, в котором вы находитесь). Вы всегда можете найти каталог, в котором находитесь, с помощью команды pwd. Однако вы также можете указать ls имена других каталогов для просмотра. Перейдите в свой домашний каталог, если вы еще этого не сделали.

Затем введите команду:

Это отобразит содержимое каталога shell_data, и вам не нужно будет туда переходить.

Команда cd работает аналогичным образом.

Это приведет вас к каталогу untrimmed_fastq без необходимости перехода через промежуточный каталог.

Практика навигации

Перейдите в свой домашний каталог. Оттуда перечислите содержимое каталога untrimmed_fastq.

Решение

Полный и относительный пути

Команда cd принимает в качестве аргумента имя каталога. Каталоги можно указать с помощью относительного пути или полного абсолютного пути. Каталоги на компьютере организованы в иерархию. Полный путь сообщает вам, где находится каталог в этой иерархии. Перейдите в домашний каталог и введите команду pwd.

Это полное имя вашего домашнего каталога. Это говорит вам, что вы находитесь в каталоге с именем dcuser, который находится внутри каталога с именем home, который находится в самом верхнем каталоге в иерархии. На самом верху иерархии находится каталог с именем /, который обычно называют корневым каталогом. Итак, подведем итог: dcuser — это каталог в доме, который является каталогом в / . Подробнее о root и home в следующем разделе.

Теперь введите следующую команду:

Это позволяет перейти на несколько уровней вперед к каталогу .hidden. Теперь вернитесь в домашний каталог.

Вы также можете перейти в каталог .hidden, используя:

Эти две команды имеют одинаковый эффект, они обе ведут нас в каталог .hidden. Первый использует абсолютный путь, задавая полный адрес из домашнего каталога. Второй использует относительный путь, задавая только адрес из рабочего каталога. Полный путь всегда начинается с / . Относительный путь — нет.

Относительный путь подобен получению указаний от кого-то на улице. Они говорят вам «идти направо на знаке остановки, а затем повернуть налево на главную улицу». Это отлично работает, если вы стоите там вместе, но не так хорошо, если вы пытаетесь рассказать кому-то, как туда добраться из другой страны. Полный путь подобен GPS-координатам. Он точно сообщает вам, где что находится, независимо от того, где вы сейчас находитесь.

Обычно можно использовать полный или относительный путь, в зависимости от того, что удобнее.Если мы находимся в домашнем каталоге, то удобнее вводить полный путь. Если мы находимся в рабочем каталоге, удобнее вводить относительный путь, так как это требует меньшего набора текста.

Со временем вам станет легче запоминать структуру используемых вами каталогов и способы быстрой навигации по ним.

Относительное разрешение пути

  1. ../backup: Нет такого файла или каталога
  2. 01.12.2012 08.01.2013 27.01.2013
  3. 01.12.2012/08.01.2013/27.01.2013/
  4. исходный pnas_final pnas_sub

Решение

  1. Нет: есть резервная копия каталога в /Users .
  2. Нет: это содержимое Users/thing/backup , но с .. мы запросили один уровень выше.
  3. Нет: см. предыдущее объяснение. Кроме того, мы не указали -F для отображения / в конце имен каталогов.
  4. Да: ../backup относится к /Users/backup .

Быстрые клавиши навигации

Корневой каталог — это каталог самого высокого уровня в вашей файловой системе, содержащий файлы, важные для ежедневной работы вашего компьютера. Хотя вы будете использовать корень ( / ) в начале ваших абсолютных путей, важно избегать работы с данными в этих каталогах более высокого уровня, поскольку ваши команды могут навсегда изменить файлы, необходимые для работы операционной системы. Во многих случаях для запуска команд в корневых каталогах потребуются специальные разрешения, которые здесь не обсуждаются, поэтому лучше избегать их и работать в своем домашнем каталоге. Работа с домашним каталогом очень распространена. Символ тильды ~ — это ярлык для вашего домашнего каталога. В нашем случае корневой каталог находится на два уровня выше нашего домашнего каталога, поэтому cd или cd ~ приведет вас к /home/dcuser, а cd / приведет вас к / . Перейдите в каталог shell_data:

Затем введите команду:

Это распечатает содержимое вашего домашнего каталога, и вам не нужно вводить полный путь.

Команды cd и cd ~ очень полезны для быстрого возврата в домашний каталог. В последующих уроках мы будем использовать символ ~ для указания нашего домашнего каталога.

Начните работу с помощью командной строки, перемещаясь по каталогам и файлам.

Ключевые понятия

Рассмотрите основные понятия, которые вам необходимо усвоить, чтобы освоить этот предмет

pwd Печать рабочего каталога

mkdir Создать каталог

cd Изменить каталог

нажмите Создать новый файл

Командная строка

pwd Печать рабочего каталога

Команда оболочки pwd отображает путь к файлу из корневого каталога в текущий рабочий каталог.

Командная строка — это текстовый интерфейс для вашего компьютера. Это программа, которая принимает команды и передает их операционной системе компьютера для запуска. Из командной строки вы можете перемещаться…

Первая команда, которую мы рассмотрим, это ls. команда — это указание компьютеру выполнить определенную задачу. Когда вы вводите ls, командная строка просматривает каталог, в котором вы находитесь, а затем…

Следующая команда, которую мы рассмотрим, — это pwd, что означает «распечатать рабочий каталог». Он выводит имя каталога, в котором вы сейчас находитесь, который называется рабочий каталог. Здесь работа…

Наша следующая команда — cd, что означает «изменить каталог». Точно так же, как вы щелкаете по папке в Windows Explorer или Finder, cd переключает вас в указанный вами каталог. Другими словами, cd ch…

Вместо того, чтобы дважды использовать cd для перехода от 2015 к памяти, мы можем использовать его один раз и дать ему более длинный аргумент: $ cd jan/memory Чтобы перейти непосредственно к каталогу, используйте cd с каталогом…

Теперь, когда мы можем перемещаться по существующей файловой системе, давайте попробуем отредактировать ее, создав каталоги (папки) через командную строку. Команда для этого mkdir: $ mkdir media Команда mkdir st…

Теперь мы знаем, как создавать каталоги через командную строку, но как создавать новые файлы? Мы можем сделать это с помощью команды touch: $ touch keyboard.txt Команда touch создает новый файл…

Теперь, когда мы рассмотрели основы навигации по вашей файловой системе из командной строки, давайте рассмотрим несколько полезных команд, которые упростят ее использование! clear используется для очистки вашего терминала, что…

Поздравляем! Вы изучили пять команд, обычно используемых для навигации по файловой системе из командной строки. Что мы можем обобщить на данный момент? * командная строка — это текстовый интерфейс для вычислений…

Что вы создадите

Проекты портфолио, демонстрирующие ваши новые навыки

Велосипедный мир

Пришло время овладеть основами командной строки. В следующем проекте мы будем практиковаться в создании элементов и навигации по файловой системе, чтобы вы могли отточить свои навыки и чувствовать себя уверенно, применяя их в реальном мире. Почему? Возможность перемещаться по папкам и создавать файлы — повседневная задача любого разработчика. Что дальше?Мир велосипедов, навигация и многое другое из командной строки. Вы получили это!

Как вы это освоите

Проверьте свои знания с помощью тестов, которые помогут запомнить синтаксис

Заголовок реализует техническую спецификацию файловой системы C++ ISO/IEC TS 18822:2015 (окончательный вариант: ISO/IEC JTC 1/SC 22/WG 21 N4100) и имеет типы и функции, позволяющие писать независимый от платформы код. для навигации по файловой системе. Поскольку он кроссплатформенный, он содержит API-интерфейсы, которые не подходят для систем Windows. Например, is_fifo(const path&) всегда возвращает false в Windows.

Обзор

Используйте API для следующих задач:

перебирать файлы и каталоги по указанному пути

получить информацию о файлах, включая время создания, размер, расширение и корневой каталог

составлять, разбирать и сравнивать пути

создавать, копировать и удалять каталоги

копировать и удалять файлы

Дополнительную информацию о файловом вводе-выводе с использованием стандартной библиотеки см. в разделе Программирование iostream.

Пути

Построение и составление путей

Пути в Windows (начиная с XP) изначально хранятся в Юникоде. Класс пути автоматически выполняет все необходимые преобразования строк. Он принимает аргументы как широких, так и узких массивов символов, а также типов std::string и std::wstring, отформатированных как UTF8 или UTF16. Класс пути также автоматически нормализует разделители путей. Вы можете использовать одну косую черту в качестве разделителя каталогов в аргументах конструктора. Этот разделитель позволяет использовать одни и те же строки для хранения путей как в среде Windows, так и в среде UNIX:

Чтобы объединить два пути, вы можете использовать перегруженные операторы / и /=, которые аналогичны операторам + и += в std::string и std::wstring . Объект пути удобно предоставит разделители, если вы этого не сделаете.

Изучение путей

У класса пути есть несколько методов, которые возвращают информацию о различных частях самого пути. Эта информация отличается от информации об объекте файловой системы, к которому она может относиться. Вы можете получить корень, относительный путь, имя файла, расширение файла и многое другое. Вы можете выполнить итерацию по объекту пути, чтобы изучить все папки в иерархии. В следующем примере показано, как перебирать объект пути. И как получить информацию о его частях.

Код выводит следующий результат:

Сравнение путей

Чтобы запустить этот код, вставьте его в полный пример выше перед main и раскомментируйте строку, которая вызывает его в main.

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

Объект пути неявно преобразуется в std::wstring или std::string . Это означает, что вы можете передать путь таким функциям, как wofstream::open , как показано в этом примере:

Итерация каталогов и файлов

Заголовок предоставляет тип directory_iterator для перебора отдельных каталогов и класс recursive_directory_iterator для рекурсивного перебора каталога и его подкаталогов. После того, как вы создадите итератор, передав ему объект пути, итератор указывает на первую запись directory_entry в пути. Создайте конечный итератор, вызвав конструктор по умолчанию.

При обходе каталога вы можете обнаружить несколько типов элементов. Эти элементы включают каталоги, файлы, символические ссылки, файлы сокетов и другие. directory_iterator возвращает свои элементы как объекты directory_entry.

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

Опубликовано: 24 февраля 2020 г. | Кирти Чинтагунтла

Фото Иланите Коппенс из Pexels

Основы

Дополнительные ресурсы по Linux

Прежде чем мы перейдем к командам, давайте поговорим о важных специальных символах. Точка ( . ), точка-точка ( .. ), косая черта ( / ) и тильда ( ~ ) имеют специальные функции в файловой системе Linux:

  • Точка ( . ) обозначает текущий каталог в файловой системе.
  • Точка-точка ( .. ) обозначает один уровень выше текущего каталога.
  • Косая черта ( / ) обозначает «корень» файловой системы. (Каждый каталог/файл в файловой системе Linux вложен в корневой каталог /.)
  • Тильда ( ~ ) обозначает домашний каталог текущего пользователя, вошедшего в систему.

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

Печать рабочего каталога ( pwd )

Команда pwd выводит текущий/рабочий каталог, сообщая, где вы сейчас находитесь в файловой системе. Эта команда приходит вам на помощь, когда вы заблудились в файловой системе, и всегда выводит абсолютный путь.

Что такое абсолютный путь? Абсолютный путь — это полный путь к файлу или каталогу. Это относительно корневого каталога (/). Обратите внимание, что при использовании путей к файлам внутри скриптов рекомендуется использовать абсолютные пути. Например, абсолютный путь к команде ls: /usr/bin/ls .

Если он не абсолютный, то это относительный путь. Относительный путь относится к вашему текущему рабочему каталогу. Например, если вы находитесь в своем домашнем каталоге, относительный путь команды ls будет следующим: . ./../usr/bin/ls .

Изменить каталог ( cd )

Команда cd позволяет перейти в другой каталог. Когда вы входите в систему с Linux или запускаете эмулятор терминала, по умолчанию вашим рабочим каталогом является ваш домашний каталог. Мой домашний каталог — /home/kc. В вашем случае это, вероятно, /home/ .

Абсолютный и относительный пути становятся более понятными, когда мы смотрим на примеры для команды cd. Если вам нужно перейти на один уровень вверх из вашего рабочего каталога, в данном случае /home , мы можем сделать это несколькими способами. Один из способов — ввести команду cd относительно вашего pwd :

Примечание. Помните, что .. представляет каталог на один уровень выше рабочего каталога.

Другой способ — указать абсолютный путь к каталогу:

В любом случае, мы сейчас внутри /home . Вы можете проверить это, введя команду pwd. Затем вы можете перейти в корень файловой системы ( / ), введя эту команду:

Если ваш рабочий каталог глубоко вложен в файловую систему и вам нужно вернуться в свой домашний каталог, именно здесь появляется ~ с командой cd. Давайте применим это на практике и посмотрим, насколько крутой может быть эта команда. Это поможет вам сэкономить массу времени при навигации по файловой системе.

Мой текущий рабочий каталог — корневой ( / ). Если вы следуете этому примеру, ваш должен быть таким же, или вы можете узнать свой, введя pwd . Переходим в другой каталог:

Чтобы вернуться в домашний каталог, просто введите ~ с помощью команды cd:

Снова проверьте текущий рабочий каталог с помощью команды pwd:

Дефис (-) возвращает к предыдущему рабочему каталогу, аналогично тому, как вы можете перейти к домашнему каталогу пользователя с помощью ~. Если вам нужно вернуться в наш глубоко вложенный каталог 9 в вашем домашнем каталоге пользователя (это был мой предыдущий рабочий каталог), вы должны ввести эту команду:

Подведение итогов

Эти команды являются вашими инструментами навигации внутри файловой системы Linux. Благодаря тому, что вы здесь узнали, вы всегда сможете найти путь к домашнему (~) каталогу. Если вы хотите узнать больше и освоить командную строку, ознакомьтесь с 10 основными командами Linux.

Хотите попробовать Red Hat Enterprise Linux? Загрузите его сейчас бесплатно.

Одна из наиболее распространенных операций, которые вам нужно будет выполнять в командной строке, — это перемещение по файловой системе. Для этого мы будем использовать ключевые слова cd и dir. Начните с открытия командной строки, используя один из методов, упомянутых здесь. Скорее всего, вы увидите что-то похожее на то, что показано ниже, где UserName — это ваш пользователь.

Независимо от того, где вы находитесь в вашей файловой структуре, если ваша система похожа на большинство, мы можем начать с этой команды:

Это изменит ваш текущий каталог на диск C:\. Обратите внимание, как теперь выглядит экран

Затем запустите каталог, чтобы увидеть что-нибудь на диске C:\

Появится список файлов и папок с некоторой информацией о них, например:

Здесь много полезной информации, но для базовой навигации нам нужен только крайний правый столбец. Обратите внимание, что у нас есть папка Users. Это означает, что мы можем запустить это

Теперь, если вы снова запустите dir, вы увидите все файлы и папки в вашем каталоге C:\Users. Итак, мы не нашли здесь то, что хотели, поэтому вернемся к родительской папке. Вместо того, чтобы вводить путь к нему, мы можем использовать .. для перехода на одну папку вверх, вот так

Теперь мы снова в C:\ . Если вы хотите перейти сразу к нескольким папкам, вы можете поставить обратную косую черту и другой набор точек, например: cd ..\.. , но нам нужна была только одна папка.

Теперь мы хотим заглянуть в эту папку Program Files.Чтобы не запутать систему, рекомендуется заключать каталоги в кавычки, особенно если в имени есть пробелы. Так что на этот раз мы будем использовать эту команду

Теперь вы находитесь в C:\Program Files>, и команда dir сообщит вам все, что здесь находится.

Итак, допустим, мы устали блуждать в поисках папки и искали именно то, что нам нужно было найти. Оказывается, это C:\Windows\Logs Вместо того, чтобы делать .. to Windows to Logs , мы можем просто указать полный путь следующим образом:

И это основы навигации по командной строке. Теперь вы можете перемещаться по всем своим папкам, чтобы выполнять другие команды в нужных местах.

Читайте также: