Mkdir build что это
Перейти к содержимому

Mkdir build что это

  • автор:

Linux.yaroslavl.ru

В главе Глава 1. Базовые Концепции Системы UNIX вы увидели как запускать shell. В данной главе мы покажем вам как работать с ней.

Главная ценность shell это множество существующих утилит: их тысячи и каждая выполняет свою отдельную задачу. Мы рассмотрим только их небольшое число. Одно из величайших преимуществ UNIX это умение комбинировать эти утилиты, что мы увидим позже.

Утилиты Обработки Файлов

В данном контексте обработка файлов обозначает их копирование, перемещение и удаление. Позже мы рассмотрим способы изменения их атрибутов (владелец, права).

mkdir, touch: Создание Пустых Каталогов и Файлов

mkdir (MaKe DIRectory (создать каталог)) используется для создания каталогов. Ее синтаксис простой:

mkdir [options] [directory . ]

Только один параметр ничего не обозначает: -p . Он делает две вещи:

  1. с ним команда будет создавать родительские каталоги, если они не существовали ранее. Без этого параметра mkdir просто может упасть, пожаловавшись, что упомянутые родительские каталоги не существуют;
  2. с ним команда будет возвращаться в командную строку без сообщений, если каталог, который вы хотите создать уже есть. Обратно, если вы не укажете параметра -p, mkdir вернет ошибку, сообщив что каталог уже имеется.

Вот несколько примеров:

  • mkdir foo: создает каталог foo в текущем каталоге;
  • mkdir -p images/misc docs: создает каталог misc в каталоге images. Сначала она создаст последний, если он не существует (-p); также создаст каталог с именем docs в текущем каталоге.

Изначально, команда touch не предназначалась для создания файлов, а только для обновления доступа к файлу и изменения времени создания файла [3] . Однако, touch будет создавать пустые файлы, если их не существовало ранее. Синтаксис такой:

touch [options] file [file. ]

Итак, запуск команды:

touch file1 images/file2

создаст пустой файл с именем file1 в текущем каталоге и пустой файл file2 в каталоге images, если файлы еще не существовали до этого.

rm: Удаление Файлов и Каталогов

Команда rm (ReMove) заменяет команды DOS del и deltree, и имеет много дополнительных параметров . Ее синтаксис следующий:

rm [options] [file|directory. ]
  • -r, или -R: удаляет рекурсивно. Этот параметр обязательный для удаления каталогов, пустых или нет. Однако вы можете также использовать rmdir для удаления пустых каталогов.
  • -i: запросить подтверждение перед каждым удалением. Обратите внимание, что по умолчанию в Mandrake Linux , rm является alias (алиасом) команды rm -i, в целях безопасности (подобные алиасы есть для команд cp и mv). Вы можете изменить свое мнение относительно полезности этих алиасов. Если вы захотите удалить их, отредактируйте ваш файл ~/.bashrc и добавьте строку: unalias rm cp mv.
  • -f, обратная опции -i, форсированное удаление файлов или каталогов даже если пользователь не имеет права на запись файлов. [4] .
  • rm -i images/*.jpg file1: удаляет все файлы с окончанием .jpg в названии в каталоге images и удаляет файл file1 в текущем каталоге с запросом подтверждения. Ответьте y чтобы подтвердить удаление, n чтобы отменить.
  • rm -Rf images/misc/ file*: удаляет без вопросов весь каталог misc/ в каталоге images/ вместе со всеми файлами в текущем каталоге, чьи имена начинаются с file.

Внимание

rm удаляет файлы безвозвратно . Не существует способа их восстановить! Не пренебрегайте использовать параметр -i, чтобы не удалить что-либо по ошибке.

mv: Перемещение или Переименование Файлов

Синтаксис команды mv (MoVe) следующий:

mv [options] [file|directory . ]

  • -f: форсировать операцию –, никаких предупреждений, если существующие файлы перезаписываются.
  • -i: напротив, спрашивает подтверждение у пользователя, перед тем как переписать существующий файл.
  • -v: verbose (подробный) режим, сообщает о всех изменениях или активности.
  • mv -i /tmp/pics/*.png .: переносит все файлы из каталога /tmp/pics/ с окончаниями в именах .png в текущий каталог (.), но спрашивает подтверждение, перед тем как переписать любой файл.
  • mv foo bar: переименовывает файл foo в bar. Если уже существует каталог bar, эффектом этой команды будет перенос всего каталога foo (самого каталога и всех его файлов и каталогов в нем рекурсивно) в каталог bar .
  • mv -vf file* images/ trash/: переносит без подтверждения все файлы текущего каталога, имена которых начинаются с file, вместе со всем каталогом images/ в каталог trash/, и показывает информацию о каждой операции.

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

cp (CoPy) замещает команды DOS copy и xcopy и имеет множество дополнительных параметров. Ее синтаксис:

cp [options] [file|directory . ]

cp имеет много параметров. Вот основные из них:

  • -R: рекурсивное копирование; обязательно для копирования каталогов, даже пустых.
  • -i: запрос подтверждения перед перезаписью любого файла, который может быть перезаписан.
  • -f: обратный -i, заменяет любой существующий файл без подтверждения.
  • -v: подробный (verbose) режим, отображает все действия, производимые cp.
  • cp -i /tmp/images/* images/: копирует все файлы в каталоге /tmp/images/ в каталог images/, расположенный в текущем каталоге. Запрашивает подтверждение, если файл должен быть перезаписан.
  • cp -vR docs/ /shared/mp3s/* mystuff/: копирует весь каталог docs плюс все файлы из каталога /shared/mp3s в каталог mystuff.
  • cp foo bar: делает копию файла foo с именем bar в текущем каталоге.

[3] В UNIX есть три различных временных метки для каждого файла: время последнего обращения к файлу (atime), то есть последний раз когда файл открывался на чтение или запись; последняя дата изменения атрибутов inode (mtime); и время, когда изменялось последний раз содержимое файла. (ctime).

[4] Для пользователя достаточно иметь права записи в каталоге, чтобы удалять файлы в нем, даже если он не владелец файлов, которые там лежат.

Пред. Уровень выше След.
Соглашения в Названиях Дисков и Разделов Начало Обработка Атрибутов Файлов

linux samba mail postfix FreeBSD Unix doc linux howto ALTLinux PHP faq bind sendmail apache iptables firewall kernel rpm apt-get Slackware openssh Cisco debian vmware GNU oracle sun awk /etc/ passwd linux установка учебник книга скачать

mkdir — создание каталога

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

команда mkdir

(сокращение от английского make directory (создать директорию))

mkdir [ПАРАМЕТРЫ] КАТАЛОГ(И)

Пример 1, создадим каталог с названием kat1:

mkdir kat1

Пример 2, создадим каталог с названием kat2 в каталоге /tmp :

mkdir /tmp/kat2

Пример 3, создадим в каталоге /tmp каталоги kat3 и kat4:

mkdir /tmp/kat3 /tmp/kat4

Пример 4, создадим в каталоге /tmp несколько вложенных каталогов kat5/kat6/kat7:

mkdir /tmp/kat5/kat6/kat7

Этот пример завершится ошибкой. Здесь, по сути, мы создаём каталог kat7, который вложен в каталог kat6, который, в свою очередь вложен в каталог kat5, а т.к. каталоги kat5 и kat6 не существуют то и создать каталог kat7 в несуществующих каталогах невозможно (перечитайте это 3 раза).
Чтобы создать каталог kat7 и все вложенные каталоги нужно использовать параметр «-p» (сокращение от английского parents (родители (т.е. создание родительских каталогов)):

mkdir -p /tmp/kat5/kat6/kat7

Команда mkdir Linux

Linux организует свою систему файлов при помощи определенных иерархий. В связи с этим будет накапливаться достаточное количество данных, поскольку объем хранилища постепенно увеличивается. Чтобы упорядочить эти сведения, необходимо создать структуру каталогов. Одна из самых распространенных ошибок — сохранение информации в базе домашнего каталога (того, в который можно попасть, войдя в систему). В нем и остальных подкаталогах, созданных для организации файлов, выполняется большая часть работы пользователя. Поступив так, придется потратить огромное количество времени, чтобы найти нужные данные среди множества иных файлов. Команда mkdir (Make Directory) поможет справиться с такого рода проблемой.

Синтаксис

Рассмотрим синтаксис.

mkdir [опция. ] [каталог. ]

  • -m (—mode=режим) — назначить режим доступа (права). По умолчанию mod принимает значение 0777, что обеспечивает неограниченные права.
  • -p (—parents) — не показывать ошибки, а также их игнорировать.
  • -z (—context=CTX ) принимает контекст SELinux для каталога по умолчанию.
  • -v (—verbose) — выводить сообщение о каждом новым каталоге.
  • —help — вывести справочную информацию.
  • —version — выводит информацию о текущей версии утилиты.

Выполняя команду, нужно иметь достаточно прав на создание перечня в родительском каталоге, либо же произойдет ошибка. Чтобы их задать в символьном виде или в качестве восьмеричных чисел, нужно убедиться, что весь путь до последнего элемента должен существовать. Затем следует воспользоваться функцией -m (или –mode).

Примеры использования

Чтобы понять как работает утилита mkdir рассмотрим примеры.

Новая папка

Создадим новую папку под названием «newpapka». Для этого напишем команду без аргументов.

Создание папки из терминала

Новая папка будет принадлежать фактическому владельцу произведенного процесса. При попытке создать уже существующую результат получится ошибочным.

Создадим несколько папок newpapka2, newpapka3, newpapka4.

mkdir newpapka2 newpapka3 newpapka4

Создадим папку «papka» в «/root/katalog».

Полный путь

Создание родительских каталогов

Родительский каталог — это каталог, в котором находится текущий подкаталог.

Зайдем в папку «primercatalog» с помощью команды «cd».

Создадим папку papka1, в papka1 — papaka2, в papka2 — papka3. Для этого будем использовать аргумент «-p» (игнорировать ошибки).

mkdir -p papka1/papka2/papka3

Для примера воспользуемся аргументом «-m» и предоставим доступ на чтение, запись и выполнение содержимого каталогов.

mkdir -m a=rwx primer

mkdir -m 777 primer

Более подробно о назначении прав можно посмотреть в другой статье chmod.

Как создавать каталоги в Linux (команда mkdir)

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

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

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

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

mkdir [OPTION] [DIRECTORY] 

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

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

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

mkdir newdir

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

ls -l
drwxrwxr-x 2 username username 4096 Jan 20 03:39 newdir 

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

Текущий рабочий каталог — это каталог, из которого вы запускаете команды. Чтобы изменить текущий рабочий каталог, используйте команду cd .

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

mkdir /tmp/newdir

Если вы попытаетесь создать каталог в родительском каталоге, в котором у пользователя недостаточно прав, вы получите сообщение об ошибке Permission denied :

mkdir /root/newdir
mkdir: cannot create directory '/root/newdir': Permission denied 

Параметр -v ( —verbose ) указывает mkdir печатать сообщение для каждого созданного каталога.

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

Родительский каталог — это каталог, который находится над другим каталогом в дереве каталогов. Чтобы создать родительские каталоги, используйте параметр -p .

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

mkdir /home/linuxize/Music/Rock/Gothic

Если какой-либо из родительских каталогов не существует, вы получите сообщение об ошибке, как показано ниже:

mkdir: cannot create directory '/home/linuxize/Music/Rock/Gothic': No such file or directory 

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

mkdir -p /home/linuxize/Music/Rock/Gothic

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

Если вы попытаетесь создать каталог, который уже существует, а параметр -p не mkdir , mkdir выведет сообщение об ошибке File exists :

mkdir newdir
mkdir: cannot create directory 'newdir': File exists 

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

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

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

mkdir -m 700 newdir

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

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

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

mkdir dir1 dir2 dir3

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

mkdir -p Music/,Classical/Baroque/Early>

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

Music/ |-- Classical | `-- Baroque | `-- Early |-- Disco |-- Folk |-- Jazz | `-- Blues `-- Rock |-- Gothic |-- Progressive `-- Punk 

Выводы

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

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

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *