Литмир - Электронная Библиотека
Содержание  
A
A
Пересылка, копирование и удаление файлов. Команды
mv
,
cp
,
rm

Рассмотрим другие команды. Вначале попробуем изменить имя файла. Переименование файла производится "пересылкой" (moving) его от одного имени к другому следующим образом:

$ mv junk special

Это означает, что файл с именем

junk
будет называться теперь
special
, содержимое его не меняется. Если теперь выполнить команду
ls
, то вы увидите другой список, в котором нет файла
junk
, но есть файл
special
:

$ ls

special

temp

$ cat junk

cat: can't open junk

$

Будьте осторожны: если вы перешлете файл на место уже существующего файла, то последний будет замещен.

Чтобы иметь копию файла (т.е. две его версии), воспользуйтесь командой

cp
:

$ cp special special.save

которая продублирует файл

special
в
special.save
. Наконец, когда вы устанете создавать и пересылать файлы, команда rm уберет все указанные файлы:

$ rm temp junk

rm: junk nonexistent

$

$ cp special special.save

Вы получите предупреждение, если один из удаляемых файлов не существует, но в противном случае

rm
, как и большинство команд UNIX, отработает без лишних слов. Системе не свойственна "болтовня". Приглашения, сообщения об ошибках кратки и не всегда помогают. Краткость может огорчать новичков, но опытных пользователей раздражают "разговорчивые" команды.

Чем может быть имя файла?

До сих пор мы употребляли имена файлов, даже не упоминая о том, что является законным именем файла. Теперь пора ввести несколько правил. Во-первых, имя файла ограничено 14 символами.[2] Во-вторых, хотя и можно использовать практически любой символ в имени файла, здравый смысл подсказывает, что следует употреблять только видимые символы и избегать применения символов, несущих определенную смысловую нагрузку. Например, как вы уже видели, в команде

ls
флаг
-t
означает список, упорядоченный по времени, так что если у вас есть файл с именем
-t
, вам придется очень постараться, чтобы он попал в список. (Как, действительно, это сделать?) Кроме знака "минус", есть и другие символы, имеющие специальный смысл в первой позиции, однако пока вы не освоите систему, лучше использовать на этом месте только буквы, цифры, точку и символ подчеркивания. (Точка и символ подчеркивания по традиции употребляются для разбития имени файла на части, как в случае
special.save
). Наконец, не забывайте о различии прописных и строчных букв:
junk
,
JUNK
и
Junk
— разные имена файлов.

Группа полезных команд

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

poem
, который содержит известное стихотворение Августа Де Моргана. Создадим его с помощью редактора
ed
:

$ ed а

Great fleas have little fleas

 upon their backs to bite 'em,

And little fleas have lesser fleas,

 and so ad infinitum.

And the great fleas themselves, in turn,

 have a greater fleas to go on;

While these again have greater still,

 and greater still, and so on.

.

w poem 263

q

$

Начнем с первой команды, которая подсчитывает число строк, слов и символов в одном или нескольких файлах и называется

wc
по одной из ее функций — подсчета слов ("word counting"):

$ wc poem

8 46 263 poem

$

т.е. в файле

poem
восемь строк, 46 слов и 263 символа. Определение "слова" весьма просто — любая последовательность символов, не содержащая пробела, символа табуляции или перевода строки. Команда
wc
произведет подсчет более чем в одном файле (и сообщит итог) и при необходимости "умолчит" о любом счетчике, см.
wc(1)
.

Вторая команда,

grep
, отыскивает в файлах строки, которые подходят под шаблон (ее имя происходит от имени команды редактора
ed g/<i>regular-expression</i>/p
, которая объясняется в приложении 1). С помощью этой команды можно найти слово
&quot;fleas&quot;
в файле
poem
:

$ grep fleas poem

Great fleas have a little fleas

And little fleas have lesser fleas,

And the great fleas themselves, in turn,

 have greater fleas to go on;

$

Команда

grep
может также отыскивать строки, которые не соответствуют шаблону, если используется флаг
-v
. (Флаг назван по имени команды редактора
ed
; действие флага можно представить как инвертирование условия соответствия шаблону.)

$ grep -v fleas poem

 upon their backs to bite 'em,

 and so ad infinitum.

While these again have greater still,

 and greater still, and so on.

$

Команду

grep
можно использовать для поиска в нескольких файлах: в таком случае она будет выдавать имя файла перед каждой строкой, подходящей под шаблон, что позволяет найти место, где произошло сопоставление. Существуют также флаги для нумерации строк и т.д. Команда может применяться и для сопоставления с более сложными шаблонами, чем
&quot;fleas&quot;
, но об этом речь пойдет в гл. 4.

вернуться

2

В современных системах такого ограничения нет, длина файла там ограничена в большинстве случаев 255 символами (прим. редактора)

9
{"b":"248117","o":1}