Gymterview
junior

Какие основные команды навигации по файловой системе существуют?

Навигация по файловой системе — базовый навык работы в терминале, включающий три ключевых команды: pwd, cd и ls.

pwd — текущая директория

pwd (print working directory) — показывает полный путь текущей директории:

Пример
$ pwd
/home/developer/projects

cd — переход между директориями

cd (change directory) — переход между директориями:

Пример
cd /var/log           # Переход по абсолютному пути
cd projects           # Переход по относительному пути
cd ..                 # Переход на уровень вверх
cd ../..              # Переход на два уровня вверх
cd ~                  # Переход в домашнюю директорию (аналог cd без аргументов)
cd -                  # Переход в предыдущую директорию
cd /home/user/my\ dir # Переход в директорию с пробелом (экранирование)
cd "/home/user/my dir" # Или с кавычками

ls — содержимое директории

ls (list) — вывод содержимого директории:

Пример
ls                 # Список файлов в текущей директории
ls /var/log        # Список файлов в указанной директории
ls -l              # Подробный вывод (права, владелец, размер, дата)
ls -a              # Показать скрытые файлы (начинающиеся с точки)
ls -la             # Комбинация: подробный + скрытые
ls -lh             # Подробный вывод с человекочитаемым размером (K, M, G)
ls -lS             # Отсортировать по размеру (от большего к меньшему)
ls -lt             # Отсортировать по времени изменения (новые первыми)
ls -lR             # Рекурсивный вывод (включая поддиректории)
ls -1              # Вывод по одному файлу на строку

Чтение вывода ls -la

Пример
drwxr-xr-x  5 developer dev  4096 Jan 15 10:30 .
drwxr-xr-x  3 developer dev  4096 Jan 10 09:00 ..
-rw-r--r--  1 developer dev  2048 Jan 15 10:30 App.java
drwxr-xr-x  2 developer dev  4096 Jan 14 15:20 src
lrwxrwxrwx  1 developer dev    11 Jan 12 08:00 link -> /tmp/data

Здесь:

  • Первый символ: d — директория, - — файл, l — символическая ссылка
  • Далее 9 символов — права доступа (rwx для владельца, группы и остальных)
  • Число — количество жёстких ссылок
  • Владелец и группа
  • Размер в байтах
  • Дата последнего изменения
  • Имя файла

tree — древовидный вывод

Пример
tree               # Древовидный вывод структуры каталогов
tree -L 2          # Ограничить глубину двумя уровнями
tree -I "node_modules|target"  # Исключить директории

На собеседовании: интервьюер проверяет базовую грамотность работы в терминале. Частая ошибка — не знать про cd - (возврат в предыдущую директорию) и разницу между абсолютным (/var/log) и относительным (../log) путями.