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

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

1. Операционные системы семейства 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 со следующими ключами:

-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 Эта команда позволяет скролить текст прямо на экране.

Leave a Reply


Рекомендуем посетить: купить диплом техникума

Rambler's Top100 тепло люкс
Фейерверки. Фейерверки салюты
Бесшумная вентиляция москва - для любых помещений.
Песок карьерный дешево, грунт растительный, плодородный грунт - baurchi.ru печи для дачи купить | Традиционные деревенские печи и европейские камины