Русские Блоги
По умолчанию mkdir может создать новый каталог только в существующем каталоге.Мы используем относительный путь при создании каталога, поэтому этот каталог создается в текущем каталоге.
Чтобы создать серию новых каталогов, вам нужно добавить параметр «-p» для рекурсивного создания. Например:
Так называемое рекурсивное создание заключается в создании каталога уровень за уровнем.
Интеллектуальная рекомендация
Реализация JavaScript Hashtable
причина Недавно я смотрю на «Структуру данных и алгоритм — JavaScript», затем перейдите в NPMJS.ORG для поиска, я хочу найти подходящую ссылку на библиотеку и записывать его, я могу исполь.
MySQL общие операции
jdbc Транзакция: транзакция, truncate SQL заявление Transaction 100 000 хранимая процедура mysql msyql> -определить новый терминатор,Пробелов нет mysql>delimiter // mysql> -создание хранимой .
Используйте Ansible для установки и развертывания TiDB
жизненный опыт TiDB — это распределенная база данных. Настраивать и устанавливать службы на нескольких узлах по отдельности довольно сложно. Чтобы упростить работу и облегчить управление, рекомендуетс.
Последняя версия в 2019 году: использование nvm под Windows для переключения между несколькими версиями Node.js.
С использованием различных интерфейсных сред вы можете переключаться между разными версиями в любое время для разработки. Например, развитие 2018 года основано наNode.js 7x версия разработана. Тебе эт.
![]()
Шаблон проектирования — Создать тип — Заводской шаблон
Заводская модель фабрикиPattern Решать проблему: Решен вопрос, какой интерфейс использовать принципСоздайте интерфейс объекта, класс фабрики которого реализуется его подклассом, чтобы процесс создания.
recursive mkdir
Or is there no alternative but to make the directories one at a time?
4 Answers 4
Parameter p stands for ‘parents’.
![]()
![]()
Using mkdir -p is a simple way for most modern OSes:
However, mkdir -p is not recommended in many manuals. Read documentation for of GNU make and autoconf about problems with using mkdir -p :
The cross platform installation and configuration systems have their own safe alternatives for mkdir -p .
CMake to use in shell command line:
Autoconf to use in script with preprocessing:
But these solutions require cmake or autoconf ( M4 ) tools to be installed (and possible preprocessing)
You can use also install-sh script with -d option:
This script is used by autoconf and automake project. I think it must be the safest solution.
At the time I was searching for a cross platform solution for standard /bin/sh without dependences, but haven’t found one. Therefore I wrote the next script that may be not ideal, but I think it is compliant to most cross platform requirements:
This script can be used for old systems, where option -p for mkdir is absent.
sed -based cross platform version of dirname was added to the code. It works with a way similar to dirname (correct with path / , paths with base name only, paths with trailing / , paths with and without trailing \n s). This function can’t work correct if the path has newlines or some invalid characters for current locale. It also replaces any combination of / ( // , /// ) with single /
Changed line mkdir «$1» || return 1 to test -d «$1» || < mkdir "$1" || return 1; >because mkdir terminates with error if path exists and this check is needed for paths containing constructions like aaa\. (If aaa doesn’t exist previous version creates aaa and then tries to create it again).
This version of mkd doesn’t generate an error if path already exist (but it still has the possibility to generate such an error in parallel execution) and can’t get several directories in command line.
Как использовать рекурсивную команду создания каталога в Linux
/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.. Некоторые люди также используют эту технологию при создании сценариев установки для программного обеспечения или пакетов, которые они планируют распространять.

Конечно, вы можете смешать эту опцию и добавить фигурные скобки к любой части команды. Если вы хотите создать одни каталоги с помощью фигурных скобок, а другие с помощью только родительской рекурсии, вы можете попробовать такую команду, как mkdir -pa/directory/inside , который создаст каталог и внутри, а также внутри1, внутри2, внутри3 и внутри4 под ним. Не стесняйтесь немного поэкспериментировать и создать дополнительные каталоги внутри друг друга, как только вы уже научились использовать команду mkdir, но имейте в виду, что вы не сможете удалить каталоги, в которых есть другие каталоги, без небольшого рекурсия или использование файлового менеджера.
Работа с файлами в Linux
В Linux файловая система организована иерархически. Со временем, как правило, накапливается изрядное количество данных. Важно создать структуру каталогов, которая поможет нам организовать эти данные так, чтобы ими было удобно управлять.
Иногда пользователи просто сбрасывают все прямо в основной домашний каталог, а потом тратят кучу времени, пытаясь найти то, что им нужно, среди сотен других файлов. Поэтому начинайте прививать себе привычку организовывать файлы в удобную структуру уже сейчас, и вы потом долго еще будете благодарить себя.
Чтобы создать папку, введите команду mkdir (сокращение от make directory — создать каталог).
Эту команду можно запустить без параметров, указав только папку, и тогда она создаст его.
- Строка 1. Убедимся, что уже не находимся там, где хотим быть. В приведенном выше примере мы находимся в домашнем каталоге.
- Строки 2. Перечисляем, что уже есть в нашем каталоге.
- Строка 7. Запускаем команду mkdir и создаем каталог linuxtutorialwork. В этом каталоге мы будем работать в этой серии статей.
Помните, что когда мы указываем каталог в приведенной выше команде, мы фактически указываем к нему путь. Вот еще несколько примеров того, как мы можем указать каталог, который нужно создать.
- mkdir /home/karpaff/foo
- mkdir ./blah
- mkdir ../dir1
- mkdir
Для mkdir есть еще несколько полезных параметров. Вспомните: где найти параметры командной строки, которые поддерживает конкретная команда?
Первый параметр -p , он позволяет создать родительские каталоги.
Второй параметр -v , он поэтапно выводит на экран процесс работы команды mkdir .
Как удалить каталог
Удалить каталог тоже легко. Учтите, что в командной строке Linux нельзя отменять действия, в том числе — удаление. Следите за тем, что вы делаете.
Для удаления папки используется команда rmdir , сокращение от remove directory (удалить каталог).
Следует отметить два момента. Во-первых, rmdir поддерживает параметры -v и -p , они работают так же, как и с командной mkdir . Во-вторых, удалять можно только пустые каталоги. Позже мы посмотрим, как это можно обойти.
Как создать пустой файл
Если попытаться обратиться к несуществующему файлу, Linux автоматически создаст его. Это очень удобно. Этой особенностью можно воспользоваться, чтобы создавать пустые файлы — с помощью команды touch .
Команду touch можно использовать для изменения времени последнего изменения файла. Студенты иногда пользуются этой командой, чтобы выглядело так, будто их файлы с заданиями не изменялись после установленного срока. Обычно толку от этой особенности мало, но это может быть полезно при тестировании системы, которая основана на правах доступа к файлу и времени его последнего изменения.
Как скопировать файл или папку
Часто перед тем, как что-то изменить, нам нужно создать копию, чтобы не потерять оригинал на случай, если что-то пойдет не так.
Для копирования файла или папки используется команда cp , сокращение от copy (скопировать).
cp [параметры] <источник> <место_назначения>
Для команды cp доступно несколько параметров. Вы можете узнать о них в руководстве. Один из них мы разберем чуть ниже.
Обратите внимание, что и источник, и место назначения — это пути. Мы можем использовать как абсолютные, так и относительные пути. Вот несколько примеров:
- cp /home/karpaff/linuxtutorialwork/example2 example3
- cp example2 ../../backups
- cp example2 ../../backups/example4
- cp /home/karpaff/linuxtutorialwork/example2 /otherdir/foo/example5
Когда мы используем команду cp , местом назначения может быть путь к файлу или каталогу. Если это файл (примеры 1, 3 и 4), команда создаст копию источника, но назовет копию именем файла, указанным в месте назначения. Если в качестве места назначения будет указана каталог, команда скопирует файл в этот каталог, и копия будет иметь такое же имя, как и у источника.
По умолчанию cp будет копировать только файл. Есть способ скопировать несколько файлов за один раз, мы познакомимся с ним позже.
С помощью параметра -r (сокращение от recursive — рекурсивный) можно копировать каталоги. «Рекурсивный» значит, что команда просмотрит каталог и все файлы и каталоги в нем, зайдет в подкаталоги и сделать в них то же самое.
В приведенном выше примере любые файлы и подкаталоги в каталоге foo также будут скопированы в foo2.
Как переместить файл или каталог
Для перемещения файлов используется команда mv , сокращение от move (переместить). Она работаете так же, как cp . Чтобы перемещать каталоги, необязательно указывать параметр -r .
mv [параметры] <источник> <место_назначения>
- Строка 3. Создаем новый каталог под названием backups.
- Строка 4. Перемещаем подкаталог foo2 в каталог backups и переименовываем его в foo3.
- Строка 7. Перемещаем файл barney в каталог backups. Поскольку мы не указали имя места назначения, оно осталось тем же.
Обратите внимание, что снова источник и место назначения являются путями и могут быть как абсолютными, так и относительными.
Как переименовать файл или каталог
Теперь, как и в случае с командой touch, мы можем использовать базовое поведение команды mv для достижения несколько иного результата.
Обычно mv используется для перемещения файла или каталога в новый каталог. Но как вы видели в строке 4, мы можем указать новое имя для файла или каталога, и команда mv переименует его, пока будет перемещать.
- Строка 3. Переименовываем файл foo в foo3 (оба пути относительны).
- Строка 6. Переходим в родительский каталог. Это позволит в следующей строке проиллюстрировать, что мы можем запускать команды для файлов и каталогов, даже если мы в настоящее время не находимся в каталоге, в котором они лежат.
- Строка 8. Переименовываем каталог testdir в fred (исходный путь был относительным, а конечный — абсолютным).
Как удалить файл
Как и в случае с rmdir, удаление файла — это действие, которое нельзя отменить, поэтому будьте осторожны.
Для удаления файла используется команда rm , сокращение от remove (удалить).
Как удалить непустой каталог
У команды rm есть несколько параметров, которые изменяют его поведение. Почитать о них вы можете в руководстве командной строки.
Здесь мы разберем полезный параметр -r . Когда мы запускаем команду rm с этим параметром, она удаляет не только каталог, но и все его содержимое: файлы и подкаталоги.
Параметр -r можно сочетать с параметром -i (сокращение от interactive — интерактивный). В этом случае вы сможете подтверждать удаление каждого файла и отменить команду.
Что нужно запомнить
Команды
mkdir
Создать каталог.
rmdir
Удалить каталог.
touch
Создать пустой файл.
cp
Скопировать файл или каталог.
mv
Переместить файл или каталог. Можно использовать для переименования.
rm
Удалить файл.
Нельзя отменить
В командной строке Linux нет возможности отменить действие. Поэтому 7 раз подумайте, прежде чем что-то удалить.
Параметры командной строки
У большинства команд есть много полезных параметров командной строки. Всегда смотрите, какие параметры доступны для той или иной команды, в руководстве.