Глава 10. Работа с файлами и каталогами

Содержание
10.1. Навигация: ls, cd и pwd
10.2. Пейджеры: more, less и most
10.3. Простой вывод: cat и echo
10.4. Создание: touch и mkdir
10.5. Копирование и перемещение
10.6. Удаление: rm и rmdir
10.7. Связывание файлов с помощью ln

Linux старается быть как можно более похожим на Unix. Исторически так сложилось, что операционные системы Unix были ориентированы на использование командной строки. И хоть в Slackware есть графический интерфейс, командная строка всё ещё остаётся главным средством управления всей системой. Поэтому важно знать и понимать действие некоторых основных команд для работы с файлами.

В следующих разделах описаны общие команды управления файлами и представлены примеры их использования. Существует ещё большое число других команд, однако ряд представленных команд поможет вам начать изучать их. Также здесь даны только краткие описания. Более подробную информацию вы найдёте в соответствующих страницах руководства по каждой из команд.

10.1. Навигация: ls, cd и pwd

10.1.1. ls

Эта команда выводит перечень файлов каталога. Пользователи Windows и DOS обратят внимание на схожесть её с командой dir. Запуск ls(1) без опций выведет перечень файлов только текущего каталога. Чтобы увидеть, что находится в корневом каталоге, вы можете выполнить следующие команды:

% cd /
% ls
bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz

Для большинства людей будет проблемой определить, что в данном выводе является каталогом, а что - файлом. Некоторые пользователи предпочитают, чтобы ls добавлял идентификатор типа к каждому пункту перечня, например так:

% ls -FC
bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz

У каталогов в конце имени добавляется косая черта, у исполняемых файлов - звёздочка и т.д.

Также ls можно использовать для получения другой информации о файлах. Например, чтобы увидеть дату создания, владельцев и права доступа, нужно использовать длинный формат:

% ls -l
drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/

Допустим, что вам нужно получить перечень скрытых файлов в текущем каталоге. Следующая команда поможет вам сделать это:

% ls -a
.              bin   cdrom  home        mnt   sbin   usr
..             boot  dev    lib         proc  suncd  var
.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz

Файлы, чьи имена начинаются с точки, (т.н. dot-файлы) являются скрытыми, когда вы выполняете ls. Такие файлы вы увидите только, если будете использовать опцию -a.

Есть ещё много других опций, которые можно найти на странице руководства. Не забывайте, что можно комбинировать параметры, передаваемые в ls.

10.1.2. cd

Команда cd используется для смены рабочего каталога. Вам просто надо набрать cd с путём к каталогу, в который нужно перейти. Вот несколько примеров:

darkstar:~$ cd /bin
darkstar:/bin$ cd usr
bash: cd: usr: No such file or directory
darkstar:/bin$ cd /usr
darkstar:/usr$ ls
bin
darkstar:/usr$ cd bin
darkstar:/usr/bin$

Обратите внимание, что без указания слэша в начале пути, команда пытается перейти в каталог, находящийся в текущем каталоге. Вызов cd без параметров переместит вас в ваш домашний каталог.

Команда cd не похожа на другие утилиты. Это встроенная команда шелла. Эти команды рассматриваются в Разд. 8.3.1. Сейчас это для вас может не иметь значения. В основном это означает, что для таких команд нет страниц руководства. Вместо этого вам нужно воспользоваться встроенной справкой командного процессора. Например:

% help cd

При этом будут показаны опции команды cd и их использование.

10.1.3. pwd

Команда pwd используется для информирования вас о вашем текущем местонахождении. Чтобы воспользоваться командой pwd, просто наберите её. Например:

% cd /bin
% pwd
/bin
% cd /usr
% cd bin
% pwd
/usr/bin