Создать рекурсивно директории linux

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

Обычно, когда вы используете команду mkdir Linux make directory, вы создаете единственный подкаталог, который находится в любом каталоге, в котором находится ваше приглашение. Если бы вы были в ~/Documents и набрали mkdir Memoranda, вы бы создайте единственный каталог под названием Memoranda, который находится в ~/Documents. Обычно внутри него не создается дополнительных каталогов.

Однако вы можете использовать рекурсивную форму команды Linux make directory для создания целых деревьев каталогов. Вы можете создать каталог внутри каталога, в котором вы находитесь, а затем создать внутри него множество других каталогов. Естественно, чтобы продолжить, вам нужно будет работать из командной строки. Удерживайте Ctrl, Alt и T, чтобы открыть графический терминал. Вы также можете выполнить поиск терминала в Ubuntu Unity Dash или выбрать меню «Приложения», нажать «Системные инструменты» и выбрать «Терминал». Вам не придется работать как пользователь root, если вы не создаете каталоги за пределами вашего собственного домашнего каталога.

Метод 1. Использование родительского параметра mkdir

Если вы хотите создать несколько каталогов одновременно, вы можете ввести mkdir -p hey/this/is/a/whole/tree , а затем нажмите Enter. Вы получите полный набор каталогов с каждым из этих имен, вложенных друг в друга. Очевидно, вы можете использовать любое имя в любом месте дерева. Если некоторые из этих каталогов существуют, скажем, там уже есть hey и this, но не другие, тогда mkdir просто передаст их без ошибок и создаст каталоги под ними.

Параметр -p называется родительским и теоретически может быть вызван во многих дистрибутивах, набрав –parents вместо -p в предыдущем команда. Таким образом вы можете создать практически неограниченное количество каталогов одновременно. Сразу после создания они работают как любые другие каталоги. Это означает, что если вы попытаетесь удалить верхний, он тоже будет жаловаться на то, что он не пустой!

Метод 2: Использование родительского параметра mkdir с расширением скобок

Расширение скобок позволяет вам создать группу каталогов, которые следуют единому шаблону при использовании интерпретатора команд bash. Например, если вы набрали mkdir , то вы создадите четыре каталога с соответствующими номерами в текущем каталоге. Если хотите, то можете объединить эту концепцию с родительской опцией. Например, вы можете ввести mkdir -p 1/ и нажать Enter, чтобы создать каталог с именем 1 с каталогами с именами 1, 2, 3 и 4 внутри него. Это очень мощная команда, и вы можете использовать ее для одновременного создания множества каталогов. Это делает его идеальным для сортировки коллекций фотографий, видео и музыки в Linux.. Некоторые люди также используют эту технологию при создании сценариев установки для программного обеспечения или пакетов, которые они планируют распространять.

Читайте также:  Linux kernel user space memory

Конечно, вы можете смешать эту опцию и добавить фигурные скобки к любой части команды. Если вы хотите создать одни каталоги с помощью фигурных скобок, а другие с помощью только родительской рекурсии, вы можете попробовать такую ​​команду, как mkdir -pa/directory/inside , который создаст каталог и внутри, а также внутри1, внутри2, внутри3 и внутри4 под ним. Не стесняйтесь немного поэкспериментировать и создать дополнительные каталоги внутри друг друга, как только вы уже научились использовать команду mkdir, но имейте в виду, что вы не сможете удалить каталоги, в которых есть другие каталоги, без небольшого рекурсия или использование файлового менеджера.

Источник

How to Use the Recursive Linux Make Directory Command

Generally, when you use the mkdir Linux make directory command you create a single subdirectory that lives in whatever directory your prompt is currently sitting in. If you were in ~/Documents and you typed mkdir Memoranda, then you’d create a single directory called Memoranda that lived in ~/Documents. You don’t usually create more directories inside of it.

However, you can use the recursive form of the Linux make directory command to create entire directory trees. You can create a directory inside the directory that you’re sitting in and then make many other directories inside of that. Naturally, you’ll need to be working from a CLI prompt to continue. Hold down Ctrl, Alt and T to open a graphical terminal. You could also search for Terminal on the Ubuntu Unity Dash or select the Applications menu, click on System Tools and select Terminal. You won’t have to be working as a root user if you’re not making directories outside of your own home directory.

Method 1: Using the Parent mkdir Option

If you wanted to make a number of directories all at once, then you could type mkdir -p hey/this/is/a/whole/tree and then push enter. You’d get an entire set of directories with each of those names, all nested inside of each other. Obviously, you could use whichever name you’d like at any point in the tree. If some of those directories exist, say there already is hey and this but not the others, then mkdir will simply pass these over without error and make directories underneath them.

Читайте также:  Server monitoring tool linux

The -p option is called parents, and could theoretically be invoked in many distributions by typing –parents instead of -p in the previous command. You can create a practically unlimited number of directories in this fashion all at once. As soon as they’re created, they function completely like any other directories. This means that if you try to remove the top one, it will complain about not being empty too!

Method 2: Using the Parent mkdir Option Plus Brace Expansion

Brace expansion allows you to create a bunch of directories that follow a single pattern when using the bash command interpreter. For instance, if you typed mkdir , then you will have created four directories numbered as such in the current directory. If you wanted to, then you could combine this concept with the parent option. You could, for instance, type mkdir -p 1/ and push enter to create a directory called 1 with directories called 1, 2, 3 and 4 inside of it. It’s a very powerful command, and you can use it to create tons of directories all at once. This makes it perfect for sorting collections of photos, videos and music in Linux. Some people also use this technology when creating install scripts for software or packages they plan to distribute.

You can of course mix this option in and add brace expansion to any part of the command. If you wanted to create some directories via brace expansion, and then others via only parents recursion, then you might want to try a command like mkdir -p a/directory/inside , which will create a and directory inside of a as well as inside1, inside2, inside3 and inside4 underneath it. Feel free to experiment a bit and create extra directories inside of each other once you’ve already learned how to use the mkdir command, but keep in mind that you won’t be able to remove directories that have other directories inside them without a little recursion or the use of a file manager.

Читайте также:  Линукс удаление файла через консоль

Источник

Mkdir Recursive

“In Linux, mkdir is a dedicated command for creating new directories. By default, the command creates one-level directories. However, with some additional flags, it can create multi-level directories. The mkdir command also allows you to set permissions for the directories.”

In this guide, we will look at using mkdir to create directories recursively.

Creating Directories Using mkdir

First, let’s look at the most basic way of using mkdir. The following command will create a directory with the name given:

You can verify if the action was successful:

Alternatively, we can enable the verbose mode with mkdir. This way, the mkdir command will print the action’s result. To enable the verbose mode, use the flag -v or –verbose:

We can also create multiple directories using a single mkdir command:

However, mkdir doesn’t allow creating a multi-layer directory by default. If attempted, mkdir will show an error that it can’t find the parent directory.

Creating Directories Recursively

To create a multi-layer directory, mkdir comes with the flag -p or –parents. In this mode, mkdir will return no error if the parent directory exists. If the parent directory doesn’t exist, it will create it instead.

Let’s try this option out. In the following example, we’re creating a three-layer directory:

With the help of the tree command, we can visualize the structure:

Typing the full name of the mkdir flags is a bit tedious, right? We can combine –verbose and –parents in the following manner:

Creating Multiple Child Directories With Brace Expansion

If you’re using bash, we can also take advantage of the brace-expansion feature to create multi-layered directories. Have a look at the following example:

We can use the tree command for better visualization of the directory hierarchy:

Final Thoughts

In this guide, we explored using mkdir to create directories recursively. For demonstration, we instructed mkdir to create multi-layer directories using the –parents flag. Per instruction, mkdir recursively created the child directories. Learn more about using the mkdir command.

The man page is always a great source of in-depth info and explanations:

Источник

Оцените статью
Adblock
detector