У даному контексті під обробкою файлів припускається копіювання, переміщення і видалення файлів. Пізніше ми розглянемо способи зміни атрибутів файлів (власник, права доступу).
Команда mkdir (MaKe DIRectory - створити каталог) використовується для створення каталогів. Її синтаксис досить простий:
mkdir [опції] <каталог> [каталог ...]
Тільки на одну опцію є сенс звернути увагу: опція -p
. Вона виконує дві дії:
створює батьківські каталоги, якщо вони не існували до цього. Без цієї опції mkdir просто викличе збій через відсутність заявлених каталогів;
мовчки завершить роботу, якщо каталог, який ви хотіли створити, вже існує. Для порівняння, якщо ви не зазначили опцію -p
, mkdir поверне повідомлення про помилку через те, що каталог вже існує.
Спочатку команда touch призначалася не для створення файлів, а для відновлення часу останнього доступу до файлу і його зміни[12]. Проте touch створить перелічені порожні файли, якщо вони не існують. Її синтаксис:
touch [опції] файл [файл...]
Таким чином, виконання команди:
touch file1 images/file2
створить у поточному каталозі порожній файл з ім'ям file1
і порожній файл file2
в каталозі images
, якщо раніше ці файли не існували.
Команда rm (ReMove - видалити) є аналогом команд DOS del і deltree, і має додаткові опції. Її синтаксис має вигляд:
rm [опції] <файл|каталог> [файл|каталог...]
-r
або -R
: рекурсивне видалення. Ця опція є обов'язковою для видалення каталогу, порожнього чи ні. Проте для видалення порожніх каталогів ви також можете скористатися командою rmdir.
-i
: запит на підтвердження перед кожним видаленням. Зверніть увагу, що по умовчанням в Mandriva Linux, rm з міркувань безпеки - це аліас команди rm -i (схожі аліаси існують для cp і mv). Проте ваша думка щодо корисності цих аліасів може змінитися. Якщо ви хочете видалити їх, ви можете створити порожній файл ~/.alias
, який заборонить використання загальносистемних аліасів. Або ж ви можете відредагувати свій файл ~/.bashrc
для відключення деяких загальносистемних аліасів шляхом додавання цього рядка: unalias rm cp mv
-f
, як протилежність -i
, примусово видаляє файли або каталоги, навіть якщо користувач немає доступу для запису в файли[13].
rm -i images/*.jpg file1: видаляє всі файли з іменами, які закінчуються на .jpg
, в каталозі images
і видаляє file1
у поточному каталозі з підтвердженням на видалення кожного з файлів. Відповідайте y для підтвердження видалення і n для скасування.
rm -Rf images/misc/ file*: видаляє без підтвердження весь каталог misc/
в каталозі images/
разом зі всіма файлами у поточному каталозі, чиї імена починаються з file
.
Синтаксис команди mv (MoVe - перемістити) наступний:
mv [опції] <файл|каталог> [файл|каталог ...] <призначення>
Зверніть увагу, що коли ви переміщаєте кілька файлів, призначенням має бути каталог. Щоб перейменувати файл, просто перемістите його в файл з новим ім'ям.
-f
: примусове виконання операції. Якщо перезаписується існуючий файл, попередження не виводяться.
-i
: протилежна дія. У користувача питається підтвердження перед перезаписом існуючого файла.
-v
: докладний режим, повідомляє про всіх зміни і дії.
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 (CoPy - копіювати) є аналогом команд DOS copy і xcopy, і має додаткові опції. Її синтаксис наступний:
cp [опції] <файл|каталог> [файл|каталог ...] <призначення>
Ось найбільш загальні опції cp:
-R
: рекурсивне копіювання; обов'язкове для копіювання каталогу, навіть якщо він порожній.
-i
: запит на підтвердження перед перезаписом будь-яких файлів, які можуть бути перезаписані.
-f
: протилежність -i
, заміняє будь-які існуючі файли без запиту підтвердження.
-v
: докладний режим, повідомляє про всі дії, виконуваних cp.
cp -i /timages/* images/: копіює всі файли з каталогу /timages/
до каталогу images/
, який знаходиться к поточному каталозі. Запитується підтвердження, якщо має бути перезаписаний файл.
cp -vR docs/ /shared/mp3s/* mystuff/: копіює весь каталог docs
, плюс всі файли з каталогу /shared/mp3s
до каталогу mystuff
.
cp foo bar: робить копію файла foo
у файл з ім'ям bar
у поточному каталозі.
[12] В UNIX® для всіх файлів існують три різних мітки часу: дата останнього доступу до файлу (atime
), тобто дата, коли востаннє файл відкривався для читання або запису; дата зміни атрибутів inode (ctime
); і, зрештою, дата останньої зміни вмісту файла (mtime
).
[13] Для користувача досить мати доступ для запису в каталог, щоб він міг видаляти файли в ньому, навіть якщо він не є власником файлів.