Top.Mail.Ru

Работа с файловой системой в Linux (cd, pwd, mkdir, rmdir, touch, cp, mv, rm)

Работа с файловой системой в 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 нет понятие корзины и перед удалением система не запрашивает, уверены ли вы, что хотите удалить данный файл или папку. Она просто их удаляет и все. Так что не торопитесь с процессом удаления и перепроверьте еще раз, толи вы удаляете.