headermask image



Работа с файлами в Linux

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

1. ls

Это очень часто используемая команда. Она перенаправляет содержимое каталога в стандартный поток вывода. Если выполнить эту команду не указывая целевой каталог, то выведется содержимое текущего каталога.

adam@laptop:~/Documents/polishlinux.org$ pwd
/home/adam/Documents/polishlinux.org/
adam@laptop:~/Documents/polishlinux.org$ls
example.txt all_about_console.txt
adam@laptop:~/Documents/polishlinux.org$ls /var/
backups cache crash games lib local lock log mail opt run spool
tmp

Если после команды ls поставить ключ -l, то выведется более подробная информация о содержимом каталога.

adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
total 0
-rw-r–r– 1 adam adam 0 2007-05-30 11:31 example.txt
-rw-r–r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt

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

  • -rw-r–r– – уровни доступа к файлам и каталогам
  • количество жестких ссылок на файл
  • пользователь и группа владельцев файла
  • размер файла
  • время последнего изменения файла
  • имя файла или каталога


Команда ls с ключом -a выводит так же и скрытые файлы. Имена скрытых файлов начинаются с точки.

adam@laptop:~/Documents/polishlinux.org/examples$ ls -a
. .. .hidden_file example.txt all_about_console.txt

По мимо этого, доступна возможность сортировки файлов командой ls со следующими ключами:

  • strong>-t – по времени (по убыванию)
  • -S – по размеру (по убыванию)
  • -r – обратный порядок (-tr)

Если запустить с ключом -R, то выведется все содержимое каталога и его подкаталогов (рекурсивный обход):

adam@laptop:~/Documents/polishlinux.org/examples$ ls -R
.:
directory1 directory2 example.txt all_about_console.txt
./directory1:
file1 file2
./directory2:
file3 file4


2. cd

С помощью команды cd (change directory) мы можем перемещаться по дереву каталогов. Для этой команды необходим один параметр – это целевой каталог (относительно текущего или относительно корня).

adam@laptop:~$cd /usr/bin
adam@laptop:/usr/bin$pwd
/usr/bin

Если вместо пути поставить символ тильда (~), то вас перекинут в домашнюю папку.

adam@laptop:/usr/bin$cd ~
adam@laptop:~$pwd
/home/adam

Если ввести ключ в виде ~имя_пользователя, то нас перекинут в домашний каталог этого пользователя.

adam@laptop:~$cd ~zoidberg
adam@laptop:/home/zoidberg$pwd
/home/zoidberg

Любой каталог к UNIX всегда содержит каталог “.” и “..”. Одна точка “ссылка” (не жесткая, и не символическая) на текущий каталог, а две точки – это “ссылка” на родительский каталог.

adam@laptop:~$cd ..
adam@laptop:/home$pwd
/home

Как уже говорилось выше, можно использовать как относительный путь, так и абсолютный. Абсолютный всегда начинается с корня и дальше по иерархии каталогов (/home/adam), а относительный – это относительно текущего каталога, начинается сразу с его имени.

3. mkdir, rmdir

Обе команды оперируют каталогами, первая создает их (make), вторая соответственно удаляет (remove). Обеим передается один параметр – это путь к каталогу. rmdir можно применять только к пустым каталогам.

adam@laptop:~/Documents/polishlinux.org/examples$ mkdir directory
adam@laptop:~/Documents/polishlinux.org/examples$ ls
directory example.txt all_about_console.txt

adam@laptop:~/Documents/polishlinux.org/examples$ rmdir directory/
adam@laptop:~/Documents/polishlinux.org/examples$ ls
example.txt all_about_console.txt

4. cp, mv, rm

  • cp – копировать (copy), требует два параметра, “что” и “куда”
  • mv – перемещение (move) или переименование (переименование – это тоже перемещение, только в тоже место), параметры как и у команды cp
  • rm – удаление (remove) файлов и каталогов

С этими командами могут использоваться следующие ключи:

  • -f – форсирует (force) задавание лишних вопросов, например если файл только для чтения, у вас не спросят уверены ли вы что хотите его удалить
  • -i – работа в интерактивном режиме,система будет спрашивать разрешение на каждое действие
  • -b – для команд cp и mv создает резервную копию файла

Для команд cp и rm существует рекурсивный режим – ключ -r.

adam@laptop:~/Documents/polishlinux.org/examples$ ls
directory1 directory2 directory3 example.txt all_about_console.txt

adam@laptop:~/Documents/polishlinux.org/examples$ cp -R directory2/ directory3/
adam@laptop:~/Documents/polishlinux.org/examples$ ls directory3/
directory2

adam@laptop:~/Documents/polishlinux.org/examples$ rm -r directory3/
adam@laptop:~/Documents/polishlinux.org/examples$ ls
directory1 directory2 example.txt all_about_console.txt

Помните, что rm -r удалит все, даже и не пустые каталоги.

5. ln

Команда ln создает ссылки на файл или каталог, которая имеет теже параметры что и оригинальный файл. Разделяют два вида ссылок, символические и жесткие.

  • символическая ссылка – содержит в себе путь к оригинальному файлу, полный аналог ярлыков в Windows
  • жесткая ссылка – в отличии от символической содержит в себе путь к тому дисковому пространству где расположены данные оригинального файла

Если удалить файл на который ссылается символическая ссылка, то в шелле она будет подсвечена красным. Если мы удалим оригинальный файл на который ссылается жесткая ссылка, то с ней ничего не произойдет, т.к. жесткая ссылка все еще “резервирует” место на диске, сообщая что это не не используемая область данных.

Символические ссылки создаются с помощью параметра -s.

adam@laptop:~/Documents/polishlinux.org/examples$ cat file
Symlink example.
adam@laptop:~/Documents/polishlinux.org/examples$ ln -s file
symlink_file
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
lrwxrwxrwx 1 adam adam 4 2007-06-01 19:11 symlink_file -> file
-rw-r–r– 1 adam adam 22 2007-06-01 19:10 file
adam@laptop:~/Documents/polishlinux.org/examples$ rm file
adam@laptop:~/Documents/polishlinux.org/examples$ ls
ymlink_file

Посмотреть все жесткие ссылки на файл можно с помощью команды ln с ключом -l.

adam@laptop:~/Documents/polishlinux.org/examples$ ln file hardlink_file
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
-rw-r–r– 2 adam adam 22 2007-06-01 19:11 hardlink_file
-rw-r–r– 2 adam adam 22 2007-06-01 19:11 file
adam@laptop:~/Documents/polishlinux.org/examples$ rm file
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
-rw-r–r– 1 adam adam 22 2007-06-01 19:11 hardlink_file


6. touch

Эта простая команда имеет два применения. Первое, если в параметр мы передадим имя файла, программа простол изменит его время модификации на текущее. Если такого файла нет, то она его создаст – это второе.

adam@laptop:~/Documents/polishlinux.org/examples$ ls -l example.txt
-rw-r–r– 1 adam adam 0 2007-05-30 11:31 example.txt
adam@laptop:~/Documents/polishlinux.org/examples$ touch example.txt
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
total 0
-rw-r–r– 1 adam adam 0 2007-06-07 13:27 example.txt
-rw-r–r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt

adam@laptop:~/Documents/polishlinux.org/examples$ touch new.txt
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
total 0
-rw-r–r– 1 adam adam 0 2007-06-07 13:28 new.txt
-rw-r–r– 1 adam adam 0 2007-06-07 13:27 example.txt
-rw-r–r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt

Если в качестве ключа указать -c или –no-create, то в случае отсутствия файла, она его не создаст. А параметры -d и -t меняют время создания на определенное в соответствии с шаблоном: [[CC]YY]MMDDhhmm[.ss].

adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
total 0
-rw-r–r– 1 adam adam 0 2007-06-07 13:28 new.txt
-rw-r–r– 1 adam adam 0 2007-06-07 13:27 example.txt
-rw-r–r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt
adam@laptop:~/Documents/polishlinux.org/examples$ touch -t
200706101200 new.txt
adam@laptop:~/Documents/polishlinux.org/examples$ touch -d
“last monday” example.txt
adam@laptop:~/Documents/polishlinux.org/examples$ touch -d
“2 days ago 12:00″ all_about_console.txt
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l
total 0
-rw-r–r– 1 adam adam 0 2007-06-10 12:00 new.txt
-rw-r–r– 1 adam adam 0 2007-06-04 00:00 example.txt
-rw-r–r– 1 adam adam 0 2007-06-05 12:00 all_about_console.txt


7. df, du

Следующие две команды шелла это df и du. Первая выводит информацию о свободнов пространстве на дисках (Display Free disk space). Вторая выводит информацию о занимаемом месте на диске файлом. С ключом -h информация выдастся не в блоках, а в мегабайтах.

adam@laptop:~/Documents/polishlinux.org/examples$ df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/sda5 40G 34G 4,0G 90% /
varrun 502M 136K 502M 1% /var/run
varlock 502M 0 502M 0% /var/lock
procbususb 502M 148K 502M 1% /proc/bus/usb
udev 502M 148K 502M 1% /dev
devshm 502M 0 502M 0% /dev/shm

adam@laptop:~/Documents/polishlinux.org/examples$ du -h error.txt
4,0K error.txt

8. echo

Простая команда, возвращает текст переданный параметром.

adam@laptop:~$echo Hello World!
Hello World!
adam@laptop:~$

Команда автоматически добавляет в конце строки символ перехода на новую, что бы этого избежать используйте ключ -n.

adam@laptop:~$echo -n Hello World!
Hello World!adam@laptop:~$

9. pwd

Команда pwd (print working directory) выдает полный путь к текущему каталогу.

adam@laptop:~$pwd
/home/adam
adam@laptop:~$

10. cat

Эта команда может использоваться для создания файлов. Строго говоря, эта программа перенаправляет поток ввода в файл и отображает поток ввода на стандартном потоке вывода.

adam@laptop:~$cat > file.txt
Very interesting text.

Для просмотра содержимого файла, нужно ввести тоже самое но без оператора >.

adam@laptop:~$cat file.txt
Very interesting text.

Если использовать ключ -n, строки будут пронумированны.

adam@laptop:~$cat -n file.txt
1 Very interesting text.

Так же эту команду можно использовать для объединения файлов, например:

cat file1 file2 file3 file4 file5 > file.iso

11. wc, head, tail

Есть три команды используемые для обработки строк. Команда wc выводит количество строк, слов и байтов в файле:

adam@laptop:~/Documents/polishlinux.org$ wc all_about_console.txt
94 908 6828 all_about_console.txt

Первая цифра – это строки, далее слова и последнее – это байты.

Оставшиеся две команды выводят соответственно голову и хвост файла. По умолчанию выводятся 10 строк, но используя ключ -n, и указав после него цифру, можно регулировать количество выводимых строк.

adam@laptop:~/Documents/polishlinux.org$ head -n 1 example.txt
The first row of the text.
adam@laptop:~/Documents/polishlinux.org$ tail -n 2 example.txt
The last but one row of the text.
The last row of the text.

12. less

Эта команда позволяет скролить текст прямо на экране.

adam@laptop:~$less file.txt

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

Источник: linuxpeople.ru

One Comment

  1. Хорошая стетья. Узнал много полезности =)

    1. EPS on February 7th, 2008 at 2:36 pm

Комментарии

Your email is never published nor shared. Required fields are marked *

*
*