Работа с файловой системой в Linux (cd, pwd, mkdir, rmdir, touch, cp, mv, rm)
Практический гид по ключевым командам Linux для работы с файловой системой. Если вы хотите уверенно управлять файлами и каталогами через терминал, это видео для вас.
После просмотра вы научитесь:
✅ Навигации: быстро перемещаться между папками, определять своё местоположение в системе.
✅ Создавать и удалять каталоги — даже сложные вложенные структуры.
✅ Работать с файлами: создавать, копировать, перемещать и переименовывать их.
✅ Безопасно удалять данные, понимая ключевые флаги команд.
✅ Использовать специальные символы (например, .., ~, /) для экономии времени.
Особое внимание уделим важным нюансам — например, как запускать скрипты из текущей папки и почему команда rm -rf требует осторожности.
Этот урок станет отличным стартом для тех, кто начинает работать с Linux, и поможет систематизировать знания тем, кто уже знаком с терминалом.
⇓ Запись видеоурока на RuTuBe ⇓
⇓ Запись видеоурока во ВКонтакте ⇓
⇓ Запись видеоурока на YouTuBe ⇓
Команды для работы с файловой системой в Linux
cd (change directory) - сменить директорию
. - текущий каталог
.. - каталог уровнем выше
~ - домашний каталог пользователя
/ - корневая директория
cd / - переход в корневую директорию
pwd (print work directory) - вывод рабочей директории
mkdir (make directory) - создать каталог
mkdir -p test/test1/test2/test3 (parent) - создание вложенных папок (родитель)
rmdir или rm -d (remove directory) - удалить пустой каталог
ls -la /var/log - вывод содержимого каталога, без перемещения в него
touch text_file - создание текстового файла (прикоснуться)
cp (copy) - копирование файлов и каталогов
cp -r (recursive) - копировать рекурсивно, т. е. все файлы и поддиректории в директориях
cp -i (interactive) - при копировании запрашивает, требуется ли переписывать файл, если имя исходного совпадает с существующим конечным файлом (интерактивно)
cp -n (no-clobber) - отменяет копирование, если конечный файл уже существует (без удара)
cp -u (update) - скопирует файл, если только он был изменён в отличие от конечного (обновить)
cp -p (preserve) - сохраняет владельца, группы, флаги и временные метки при копировании (сохранять)
cp -f (force) - при копировании, если существующий конечный файл не может быть открыт для копирования, то удалит его и запишет новый(принудительно)
rm (remove) - удаление файлов и директорий
rm -f (force) - при удалении игнорируются несуществующие файлы и аргументы. Не выдаёт запрос на подтверждение удаления (принудительно)
rm -i (interactive) - выводит запрос на удаление каждого файла (интерактивно)
rm -r (recursive) - удаляет директории и содержимое в них
rm * - удалить все файлы в текущей директории
rm -i * - удалить все файлы в текущей директории с подтверждением удаления каждого файла
rm -rf /dir/ - принудительно удалить папку и все файлы и подкаталоги в ней
mv (move) - перемещение и переименование файлов и каталогов
mv -f (force) - при перемещении файла не спрашивать разрешение на перезапись (принудительно)
mv -i (interactive) - при перемещении файла спрашивать разрешение на перезапись (интерактивно)
mv -n (no-clobber) - при перемещении файла не перезаписывать существующий файлы (без удара)
mv -v (verbose) - выводить информацию о каждой операции (log), которая в данный момент обрабатывается с помощью mv (многословный)
mv -u (update) - перемещать файл только при условии, что исходный файл новее, чем конечный, или если конечного файла не существует.
mv text_file_old text_file_new - переименование файла или папки
Мы уже рассмотрели работу команды по смене директории cd, теперь давайте рассмотрим различные нюансы при работе с данной командой.
cd /
так мы переходим в коневой каталог
cd ~
переход в домашний каталог текущего пользователя
cd ..
перемещение на уровень выше
cd it-skills
переход в нужный каталог
cd .
переход в текущий каталог.
С одной стороны кажется глупым, зачем вообще использовать знак текущего каталога, мы ведь и так в нем находимся. Однако, если у вас в текущей папке находится файл скрипта, который вы хотите запустить допустим с названием script.sh и вы просто введете его название, то он не запустится, так как скрипты запускаются с указанием полного пути.
script.sh
И в данном случае он запустится командой ./script.sh
./script.sh
Если вы вдруг запутались и не можете понять, в какой директории находитесь, для этого поможет команда pwd, которая выводит путь к вашей текущей директории
pwd
pwd (print work directory) - вывод рабочей директории
Перемещаться по каталогам мы научились, теперь давайте научимся создавать, копировать, перемещать, переименовывать и удалять файлы и каталоги.
Для создания директорий существует команда mkdir
mkdir (make directory) - создать каталог
mkdir test
ls -la
Если нужно сразу создать несколько вложенных папок, то используем дополнительный ключ -p от слова parent или родитель
mkdir -p test/test1/test2/test3 (parent) - создание вложенных папок (родитель)
mkdir -p test/test1/test2/test3
cd test
ls
cd test1
ls
pwd
cd ~
Мы поможем вам легко получить базовые навыки работы с Linux, без лишней теории и воды. Убедитесь, что осваивать новое может быть просто!
Получите бесплатный доступ к первым модулям курса.
Для удаления каталога, используется команда rmdir
rmdir (remove directory) - удалить пустой каталог
rmdir test
rmdir: failed to remove 'test': Directory not empty - выдается ошибка, так как данный каталог не пустой, а этой командой можно удалять только пустые каталоги. Поэтому далее мы воспользуемся другой командой для полного удаления папки, всех файлов и подпапок.
Для создания файлов чаще всего используют команду touch
touch text_file - создание текстового файла (прикоснуться)
cd test
touch test
ls
Теперь разберемся с копированием файлов и каталогов, отвечает за это команда cp
cp (copy) - копирование файлов и каталогов
cp test test_copy
ls
Т.е. мы указываем какой файл или каталог, и куда копировать.
У данной команды есть множество дополнительных ключей, основные из них это:
cp -r (recursive) - копировать рекурсивно, т. е. все файлы и поддиректории в директориях.
cp -i (interactive) - при копировании запрашивает, требуется ли переписывать файл, если имя исходного совпадает с существующим конечным файлом (интерактивно)
cp -n (no-clobber) - отменяет копирование, если конечный файл уже существует (без удара)
cp -u (update) - скопирует файл, если только он был изменён в отличие от конечного (обновить)
cp -f (force) - при копировании, если существующий конечный файл не может быть открыт для копирования, то удалит его и запишет новый(принудительно)
Все ключи, которые я буду дополнительно указывать запоминать не обязательно, это чисто для информации, чтобы вы знали что они есть и какие функции выполняют.
Для перемещения и переименования файлов и папок, используется команда mv
mv (move) - перемещение и переименование файлов и каталогов
mv test test_new
ls
mv test_copy test1
ls
cd test1
ls
У данной команды есть множество дополнительных ключей, основные из них это:
mv -f (force) - при перемещении файла не спрашивать разрешение на перезапись (принудительно)
mv -i (interactive) - при перемещении файла спрашивать разрешение на перезапись (интерактивно)
mv -n (no-clobber) - при перемещении файла не перезаписывать существующий файлы (без удара)
mv -v (verbose) - выводить информацию о каждой операции (log), которая в данный момент обрабатывается с помощью mv (многословный)
mv -u (update) - перемещать файл только при условии, что исходный файл новее, чем конечный, или если конечного файла не существует.
Для удаления файлов и папок, используется команда rm
rm (remove) - удаление файлов и директорий
cd ~
ls
cd test
ls
rm test_new
ls
У данной команды есть множество дополнительных ключей, основные из них это:
rm -f (force) - при удалении игнорируются несуществующие файлы и аргументы. Не выдаёт запрос на подтверждение удаления (принудительно)
rm -i (interactive) - выводит запрос на удаление каждого файла (интерактивно)
rm -r (recursive) - удаляет директории и содержимое в них
rm * - удалить все файлы в текущей директории
rm -i * - удалить все файлы в текущей директории с подтверждением удаления каждого файла
rm -rf /dir/ - принудительно удалить папку и все файлы и подкаталоги в ней
Попробуем удалить полностью папку test со всеми каталогами и файлами в ней.
Если мы попробуем просто командой
cd ~
rm test
rm: cannot remove 'test': Is a directory говорит что это директория и он удалить её не может.
rm -rf test
- т.е. принудительно и рекурсивно со всеми вложениями
ls
Все, папка, подпапки и файлы удалились.
Но, будьте внимательны с данной командой, так как в Linux нет понятие корзины и перед удалением система не запрашивает, уверены ли вы, что хотите удалить данный файл или папку. Она просто их удаляет и все. Так что не торопитесь с процессом удаления и перепроверьте еще раз, толи вы удаляете.