Как создать дерево каталогов в linux debian

Обновлено: 01.07.2024

В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.

Требования

Cервер с Ubuntu 20.04

Все команды, описанные ниже, будут работать и в других дистрибутивах Linux.

Расположение каталогов в файловой системе

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

Для того чтобы узнать, где располагается каталог, в котором мы сейчас находимся, используется команда:

Результат выполнения команды выглядит следующим образом:

Домашний каталог располагается после имени учетной записи пользователя, в приведенном примере он называется /demo. Этот каталог находится в каталоге с именем /home и в каталоге верхнего уровня, который называется root или корневой каталог, поэтому представлен одной косой чертой /.

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

Для просмотра содержимого каталога используется команда ls. Название этой команды является сокращением слов list files.

Просмотреть содержимое любой директории можно следующими способами:

Либо введя команду:

В результате выполнения команды отображаются файлы и каталоги, находящиеся внутри данного каталога:

К команде ls можно добавлять дополнительные флаги, например, чтобы показать детализированное представление (права, список владельцев файлов или папок, размер, дату последнего модифицирования) файлов и директорий в текущей директории, можно использовать флаг -l:

Результат выполнения команды:

Для просмотра списка всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a:

Результат выполнения команды:

Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип, можно с помощью команды:

Результат выполнения команды:

Перемещение между каталогами

Для перехода в домашний каталог используется команда cd. Название этой команды является сокращением слов change directory.

Для перехода в домашний каталог пользователя user используется команда:

Для перехода в предыдущую директорию, в которой мы находились до перехода в текущую директорию также используется команда cd.

В Linux-системах каждый файл и каталог находятся в самой верхней директории, которая называется «корневой» и обозначается одним символом слэш /.

Абсолютный путь указывает на расположение каталога по отношению к этой директории верхнего уровня. Это позволяет обращаться к справочникам однозначным образом из любого места в файловой системе.

Каждый абсолютный путь должен начинаться с косой черты — символа слэш /.

Для перехода в директорию уровнем выше используется команда:

Для перехода в директорию двумя уровнями выше:

Операции с файлами и каталогами

Далее приведен список основных команд навигации в консоли Linux.

Создание

Создание файлов производится с помощью команды:

Создание каталогов выполняется с помощью команды вида:

Название этой команды является сокращением слов make directory.

Создание двух каталогов одновременно выполняется с помощью команды:

Для создания дерева каталогов используется команда следующего вида:

Удаление

Для удаления директорий используется команда rmdir имя_директории. Название этой команды является сокращением слов remove directory.

Для удаления файлов используется команда rm. Например, для удаления файла с именем file1 используется команда:

Команда rm также позволяет удалять не только файлы, но и каталоги.

Для удаления директории с именем dir1 со всеми подкаталогами и файлами используется опция -r (от слова recursive):

Можно удалить одновременно две директории со всем их содержимым:

Также можно использовать параметр -f, который означает, что при удалении не будет запрашиваться подтверждение.

Команда для удаления файла будет выглядеть так:

Команда для удаления каталога:

Перемещение

Для перемещения и переименования файлов и каталогов используется команда mv. Название этой команды является сокращением слова move.

Переименовать файл можно с помощью команды:

Для того чтобы переместить файл, используется команда:

Копирование

Для копирования используется команда cp. Название этой команды является сокращением слова copy.

Чтобы скопировать файл file1 и назвать его file2, используется команда:

Для того чтобы копировать директорию dir1 в директорию dir2, используется команда:

Скопировать файл с именем file1 в директорию с именем dir1, можно с помощью команды:

Редактирование файлов

Мы ознакомились с основными командами для работы с каталогами и файлами.

Далее мы изучим, как редактировать файлы и добавлять в них содержание.

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

В результате ввода в терминал команды nano будет открыт чистый файл.

Интерфейс выглядит следующим образом:


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

В середине должно располагаться содержимое файла, в настоящее время оно пустое.

В нижней части интерфейса расположен ряд комбинаций клавиш, которые указывают с основными элементами управления текстового редактора. Для каждого из них символ ^ означает клавишу CTRL.

Для того чтобы открыть справку используйте сочетание клавиш CTRL-G.

Закрывается справка с помощью сочетания клавиш CTRL-X. После закрытия справки мы возвращаемся к редактированию.

Вводить и редактировать можно любой текст, например, можно ввести: “Hello World!”

Для сохранения внесенных изменений следует нажать сочетание клавиш CTRL-O. Внимание! Это буква О, а не ноль.

Далее система попросит вас ввести либо подтвердить имя файла, который вы хотите сохранить:

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

После ввода имени файла нажмите клавишу ENTER.

Для того чтобы выйти из тестового редактора нажмите сочетание клавиш CTRL-X.

Если вы внесли изменения и не сохранили файл, вам будет предложено сохранить сделанные вами изменения:

Вы можете нажать клавишу Y, чтобы сохранить изменения, клавишу N для отмены изменений и выхода, или сочетание клавиш CTRL-C, чтобы отменить операцию выхода из режима редактирования файла.

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

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

Заключение

Мы ознакомились с возможностями просмотра доступных файлов и каталогов, с основными командами для работы с файлами, которые позволяют просматривать, копировать, перемещать и удалять файлы, а также с основами редактирования в текстовом редакторе nano.

В этом руководстве рассматриваются основы использования команды mkdir , включая повседневные примеры.

Синтаксис команды Linux mkdir

Синтаксис команды mkdir следующий:

Команда принимает в качестве аргументов одно или несколько имен каталогов.

Как создать новый каталог

Чтобы создать каталог в Linux, передайте имя каталога в качестве аргумента команды mkdir . Например, чтобы создать новый каталог newdir вы должны выполнить следующую команду:

Вы можете убедиться, что каталог был создан, перечислив его содержимое с помощью команды ls :

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

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

Как создать родительские каталоги

Допустим, вы хотите создать каталог /home/linuxize/Music/Rock/Gothic :

Вместо того, чтобы создавать недостающие родительские каталоги один за другим, вызовите команду mkdir с параметром -p :

Когда используется опция -p , команда создает каталог, только если он не существует.

Как установить разрешения при создании каталога

Чтобы создать каталог с определенными разрешениями, используйте параметр -m ( -mode ). Синтаксис для назначения разрешений такой же, как и для команды chmod .

В следующем примере мы создаем новый каталог с разрешениями 700 , что означает, что только пользователь, создавший каталог, сможет получить к нему доступ:

Когда опция -m не используется, вновь созданные каталоги обычно имеют права доступа 775 или 755 , в зависимости от значения umask .

Как создать несколько каталогов

Чтобы создать несколько каталогов, укажите имена каталогов в качестве аргументов команды, разделенные пробелом:

Команда mkdir также позволяет создать сложное дерево каталогов с помощью одной команды:

Приведенная выше команда создает следующее дерево каталогов :

Выводы

Команда mkdir в Linux используется для создания новых каталогов.

Для получения дополнительной информации о mkdir посетите страницу руководства mkdir .

Большинство пользователей Linux используют старую-добрую команду ls для вывода списка каталогов в Debian. Однако команде ls не хватает некоторых функций, которые предоставляются другой командой - командой tree. Эта команда печатает папки, подпапки и файлы в виде дерева. Вы можете сделать команду еще более полезной, используя с ней различные параметры / флаги. В этой статье мы объясним, как освоить команду tree, с помощью нескольких примеров.

Мы выполнили команды и процедуры, упомянутые в этой статье, в системе Debian 10 Buster.

Как установить команду "Дерево"?

Установить утилиту командной строки tree в Debian довольно просто с помощью команды apt-get. Откройте командную строку Debian, Терминал, с помощью поиска Application Launcher следующим образом:


Application Launcher можно получить с помощью клавиши Super / Windows на клавиатуре.

Затем введите следующие команды как sudo:

(мы рекомендуем запускать эту команду перед каждой установкой, чтобы вы могли получить последнюю доступную версию программного обеспечения, присутствующего в онлайн-репозиториях)

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


После установки дерева вы можете проверить номер версии, а также убедиться, что установка прошла успешно, с помощью следующей команды:


Как использовать команду tree?

Здесь мы приведем несколько примеров команды tree, чтобы вы могли не только использовать ее, но и сделать шаг вперед в ее освоении.

Базовый вывод дерева

Это самый простой способ использования команды tree:


Вывод показывает древовидную структуру вашего текущего каталога, отображая все папки, подпапки и файлы.

Отображение содержимого определенного каталога

Чтобы вывести список файлов и вложенных папок определенного каталога, а не текущего каталога, вы можете указать имя каталога или путь с помощью следующего синтаксиса команды:

$ tree -a [DirectoryName / Path]

Следующая команда выведет список всех файлов и подпапок, если таковые имеются, в каталоге изображений:


Показать скрытые файлы вместе с другими файлами с помощью Tree

Команда tree не отображает список скрытых файлов и папок в Debian. Однако вы можете использовать флаг «a» для их перечисления следующим образом:


Файлы и папки в дереве, начинающиеся с «.», Являются скрытыми. В приведенном выше выводе я выделил одну такую ​​запись, чтобы объяснить, как она выглядит.

Отображать только список каталогов с помощью Tree

Если вы хотите просмотреть только список каталогов, а не базовые файлы, вы можете использовать флаг d с командой tree следующим образом:


Отображать префикс полного пути к файлам и папкам using Tree

С помощью f fag вы можете настроить флаг дерева для отображения полного пути в качестве префикса для всех файлов и списков папок.


Это особенно полезно, когда вы хотите знать, что и где существует.

Отображение размера файлов и папок с помощью Tree

С помощью флага s вы можете заставить команду tree печатать размер в байтах всех файлов и папок в вашем каталоге.


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

Отображение разрешений на чтение и запись для файлов и папок с помощью Tree

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


Итак, прежде чем вы захотите Для выполнения операции с файлом и папкой вы можете сначала узнать и, возможно, редактировать, какие у вас есть разрешения на определенный элемент.

Список содержимого папки до определенного уровня / глубины с помощью Tree

Вместо перечисления всего содержимого вашего каталога вы можете настроить команду tree для отображения дерева до определенного уровня или глубины. Например, уровень 1 в команде дерева будет отображать только список данной папки, а не любую из ее подпапок. Вот как использовать синтаксис:

Следующая команда отобразит только подкаталоги (с помощью флага -d) текущего каталога, а не последующих развернутое дерево.


Make Команда Tree распечатать список файлов, содержащих определенный шаблон

Вы можете использовать команду tree только для вывода списка файлов, содержащих определенный шаблон подстановки. Вот синтаксис для указания шаблона:

$ tree -P [[шаблон] *] / [* [шаблон]] / [[* шаблон *]]

В этом примере я использую tree, чтобы вывести список файлов, содержащих ключевое слово «screenshot»:


Сделайте так, чтобы команда Tree не выводила на печать некоторые выборочные имена

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

$ tree -I * [ключевые слова]

Следующая команда выведет список всех файлов и папок, кроме одного, содержащего ключевое слово «snap».


Распечатать вывод команды Tree в файл

Если вы хотите вывести результат команды tree в файл, вы можете использовать следующий синтаксис:

Следующая команда напечатает список всех файлы и папки папки «Изображения» в HTML-файл с именем myfile.html

Tree Help

Команда tree намного полезнее, чем описанное нами использование. Вы можете дополнительно изучить использование, просмотрев справку по команде tree следующим образом:


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

Если интересуетесь ОС Debian, рекомендую обратиться к тегу Debian на моем блоге.

Debian. Шпаргалка сисадмина. Работа с файлами и каталогами

Команды сгруппированы по выполняемым изменениям.

Создание, изменение и удаление файлов и каталогов

touch

Изменяет временные штампы файла

Если заданный файл еще не существует, то он создается (как пустой файл с правами доступа 0666, с учетом umask), если не задана опция -c.

Создание файла file_test01 в текущем каталоге:

touch file_test01

Создание файла с указанием метки времени:

touch -t 200701310846.26 file_test01

Можно указать и будущую дату.

Файл будет создаy в том случае, если будет не пустым.
Создание файла file_test02 в текущем каталоге:

nano file_test02

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

Создание пустого файла file_test03 в текущем каталоге:

> file_test03

Про создание файлов на этом все.

mkdir

Создать каталог testdir01 в /root/:

mkdir /root/testdir01

Создать каталог testdir02 в /root/ с полными правами доступа только у владельца, у остальных нет прав даже на чтение (о правах доступа см. ниже):

mkdir -m 700 /root/testdir02

Для удаления файлов и каталогов можно воспользоваться командами ниже.

Удаляет файлы или каталоги

Удалить файл testfile01 из каталога /root/:

rm /root/testfile01

Каталог этой командой без дополнительных аргументов удалить не получится:

rm testdir01

rm: невозможно удалить «testdir01»: Это каталог

rm -r testdir01

rmdir

Удаляет пустые каталоги

Удалить каталог testdir04 из текущего расположения:

rmdir testdir04

Непустые каталоги удалить не получится:

rmdir /root/testdir02

rmdir : не удалось удалить « / root / testdir02 » : Каталог не пуст

Придется использовать rm, как описано выше.

Копирование, переименование и перемещение файлов и каталогов

Перемещает (переименовывает) файлы

mv /root/file_primer03 /root/testdir02/fileprimer031

Хотя для изменения имени файла существует и другая команда.

Для копирования файлов воспользуйтесь другой командой.

Копирование файлов и каталогов

Копирование файла test_file01 из текущего расположения в каталог testdir02:

cp test_file01 testdir02/test_file01

Рекурсивное копирование каталога testdir02 из текущего расположения в новый каталог testdir02_copy:

cp -r testdir02 testdir02_copy

Очень интересное описание параметра:

Просмотр и редактирование

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

Concatenate files and print on the standard output

Отображение содержимого файла test_file01:

cat test_file01

Объединение файла test_file01 с файлом test_file02, результат записывается в файл test_file03 в текущем расположении:

cat test_file01 test_file02 > test_file03

Sort lines of text files

Output the first part of files

Отображение первых строчек файла test_file01 (по умолчанию последние 10 строчек):

head test_file01

Отображение первых 4 строчек файла test_file01:

head -n 4 test_file01

Output the last part of files

Отображение последних строчек файла test_file01 (по умолчанию последние 10 строчек):

tail test_file01

Отображение последних 4 строчек файла test_file01:

tail -n 4 test_file01

-n - output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth

Read from standard input and write to standard output and files

Удобная команда, предназначеня для одновременного вывода информации на экран и в файл.

О всех описанных выше командах можно подробнее прочитать в статье "Операции с файлами и фильтрация".

grep, egrep, fgrep, rgrep

Print lines matching a pattern

О данных командах, в частности речь идет о grep, в некотором будущем я планирую написать отдельную статью, т.к. модели их применения достаточно объемны.

ls, dir, vdir

Выводит содержимое каталога

Отобразить список файлов в текущем расположении:

ls -l
-l - Выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.

Отобразить список файлов в текущем расположении рекурсивно:

ls -lR

-R - Рекурсивно выдавать список содержимого всех каталогов.

Подробнее о команде ls можно прочитать в статье "15 базовых примеров команды ls в Linux"

Поиск файлов

Search for files in a directory hierarchy

Поиск файлов, начинающихся на testf, с корневого каталога:

find / -name "testf*"

locate

Find files by name

Описание с официального сайта:

Команда updatedb создаёт индекс всех файлов и папок, имеющихся в системе. Команда locate позволяет быстро находить файлы в системе по этому индексу без необходимости сканирования всей файловой системы каждый раз. Также см. пакеты mlocate и slocate.

whereis

Locate the binary, source, and manual page files for a command

Команду удобно использовать для определения месторасположения исходных файлов, ман-страниц.
Информация о консольном редакторе nano:

whereis nano

which

Locate a command

Также прочитать подробнее о командах поиска можно в статье "5 способов поиска файлов в Linux, используя терминал.".

Другие команды

Помимо описанных выше существует множество других полезных команд, о которых можно прочитать ниже.

pwd - print name of current/working directory/

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

cd - используется для перехода между каталогами.

Для перехода в домашний каталог:

cd

Для перехода в каталог /usr/bin/:

cd /usr/bin/

Переход на один уровень вверх:

cd ..

ln - создает ссылки между файлами

du - оценка места на диске, занимаемого файлом

Вывести размер текущего каталога:

du -sh

На этом пока все, по мере необходимости буду дополнять статью другими командами.

Помимо упомянутых выше, при написании статьи использовались следующие источники:

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