Настольная книга по Linux/Файлы: различия между версиями

Содержимое удалено Содержимое добавлено
Новый раздел учебника, на основе Настольная книга по Linux.
 
Исправления; дополнение; оформление; →‎Изменение: новый раздел, заимствуя пример из Настольная книга по Linux.
 
Строка 1:
В данном разделе рассмотрены примеры работы с файлами (включая ''обычные'' файлы, директории, и иные ''особые'' файлы) как ''объектами файловой системы''. Примеры по обработкиобработке текстового ''содержания'' файлов можно найти в разделе [[../Текстовые потоки/]]; взаимодействия с файловыми системами <em >в целом</em> — в разделе [[../Файловые системы/]].
<!-- NB: мы используем HTML ниже для оформления списков, чтобы поместить <pre />-пример команды вместе с <p />-описанием в один и тот же элемент неупорядоченного списка. -->
 
Строка 5:
 
<ul>
<li ><p >Создание нового (пустого) файла <var >filename</var>, или обновление времени последнего изменения если файл существует:</p>
{{Cmdl |$ |touch -- <var >filename</var> }}
 
Строка 13:
Переносимый ({{w |POSIX}}, {{w |BusyBox}}) вариант:
{{Cmdl |$ | 2 = dd bs=1024k count=10 &lt; /dev/zero &gt; <var >filename</var> }}
 
<li ><p >Создание заполненного нулевыми байтами файла <var >filename</var> размером 10 мегабайт (10 × 2²⁰ байт) <em >без резервирования</em> пространства на ФС (англ. {{lang |en|sparse file}}):</p>
{{Cmdl |$ | 2 = dd bs=1k seek=10239 count=1 &lt; /dev/null &gt; <var >filename</var> }}
 
<li ><p >Создание директории <var >dirname</var>; именованного потока («трубы») <var >fifoname</var>; символьной ссылки <var >symname</var>, указывающей на <var >target</var>:</p>
Строка 18 ⟶ 21 :
{{Cmdl |$ |mkfifo -- <var >fifoname</var> }}
{{Cmdl |$ |ln -s -- <var >target</var> <var >symname</var> }}
 
</ul>
 
== Изменение ==
 
<ul>
<li id="ln" ><p >Создание нового имени («жесткой ссылки») <var >newname</var> для файла <var >filename</var>:</p>
{{Cmdl |$ |ln -- <var >filename</var> <var >newname</var> }}
{{Cmdl |$ |link -- <var >filename</var> <var >newname</var> }}
 
<li id="rm" ><p >Удаление имени <var >filename</var>; файл будет удален если более не используется (отсутствуют другие имена или ссылки из выполняемых в данный момент процессов):</p>
{{Cmdl |$ |rm -- <var >filename</var> }}
{{Cmdl |$ |unlink -- <var >filename</var> }}
 
<li id="mv" ><p >Переименование файла <var >from</var> в <var >to</var>:</p>
{{Cmdl |$ |mv -- <var >from</var> <var >to</var> }}
 
<strong >Обратите внимание</strong>, что собственно ''переименование'' (через системный вызов <code >rename</code>) возможно лишь в пределах одной файловой системы.<ref name="rename-posix" /> При переименовании между файловыми системами, {{Unix man |mv|1}} создаст ''копию'' <var >to</var> файла <var >from</var>, после чего удалит <var >from</var>.<ref name="mv-posix" />
 
… Файлов <var >file<sub >1</sub></var>, <var >file<sub >2</sub></var> в директорию <var >dirname</var> (форма с <code >--target-directory=</code> полезна при использовании {{Unix man |xargs|1}} и опции <code >-exec +</code> команды [[#find |find]]):
{{Cmdl |$ |mv -- <var >file<sub >1</sub></var> <var >file<sub >2</sub></var> <var >dirname</var> }}
{{Cmdl |$ | 2 = mv --target-directory=<var >dirname</var> -- <var >file<sub >1</sub></var> <var >file<sub >2</sub></var> }}
 
<li ><p >Замена файла <var >filename</var> пустым; если у файла существуют другие имена (например, созданные командой [[#ln |ln]]) — они продолжат ссылаться на исходное содержание:</p>
{{Cmdl |$ |mv -f -- "$(mktemp -- ./XXXXX)" <var >filename</var> }}
 
… Обнуление содержания; все существующие имена файла будут ссылаться на пустое содержание:
{{Cmdl |$ |true &gt; <var >filename</var> }}
 
</ul>
Строка 54 ⟶ 85 :
</ul>
 
== Поиск и действия над результатами поиска ==
=={{Якорь |Поиск ==}}
 
<ul>
Строка 73 ⟶ 105 :
{{Cmdl |$ | 2 = grep -rlE --include='<var >*.[ch]</var>' -- '<var >(foo&#124;bar).*baz</var>' <var >dirname</var> }}
 
<li id="find" ><p >Найти все ''объекты файловой системы'' в директории <var >dirname</var> и ее поддиректориях:</p>
{{Cmdl |$ |find <var >dirname</var> }}
 
Строка 115 ⟶ 147 :
</ul>
 
== Tar ==
== Файловые архивы ==
{{Якорь |Файловые архивы}}<!-- NB: при добавлении информации по другим типам файловых архивов — cpio, 7z, etc. — создайте новый раздел == Файловые архивы ==, первым подразделом которого станет === Tar ===, последующими — разделы по другим архиваторам (по одному на раздел.) -->
 
<ul>
Строка 160 ⟶ 193 :
 
* Разделы [[../Текстовые потоки/]] и [[../Файловые системы/]].
 
== Примечания ==
{{Примечания | refs =
<!-- Пожалуйста поддерживайте алфавитный порядок для name. Спасибо. -->
<ref name="mv-posix" >{{Cite web | title = mv | url = http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html | work = The Open Group Base Specifications, Issue 7, IEEE Std 1003.1-2013 | lang = en | accessdate = 2015-05-06}}</ref>
<ref name="rename-posix" >{{Cite web | title = rename | url = http://pubs.opengroup.org/onlinepubs/9699919799/utilities/mv.html | work = The Open Group Base Specifications, Issue 7, IEEE Std 1003.1-2013 | lang = en | accessdate = 2015-05-06}}</ref>
}}
 
{{BookCat}}