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

Home » bash » Работа с файлами в bash
bash Комментариев нет

Место на диске

df -h

tar - архивирование (для tar архивов)

Может использоваться с флагами
-c Создать архив
-x Распаковать
-f Указать файл
-j Сжатие в .tar.bz2
-v Показывать процесс архивирования/расархивирования
--exclude 'pattern' Исключить файлы/папки
Пример использования:
Создать архив в архивируемой папке
$ tar -jcvf sub.w2atech.ru/sub.sources.YYYYmmdd.tar.bz2 sub.w2atech.ru/
Создать архив исключая подпапку
$ tar -jcvf sub.w2atech.ru/sub.sources.YYYYmmdd.tar.bz2 --exclude 'backup/*' sub.w2atech.ru/
Разархивировать
$ tar -xvf sub.sources.YYYYmmdd.tar.bz2

unzip - разархивирование (для zip архивов)

Пример использования:
Разархивировать
$ unzip sub.sources.YYYYmmdd.zip

ls - просмотр содержимого каталога.

Может использоваться с флагами
-l вывод подробной информации (размер файлов, имя пользователя и группы хозяина файла.)
-a Показать все файлы (включая скритые файлы и каталоги)
-h Показывать размеры файлов в человеко-читабельном виде
Пример использования:
Показать подробно все содержимое директории /home
$ ls -lah /home
total 44K
drwxr-xr-x  9 root     root   4.0K 2010-10-08 13:03 .
drwxr-xr-x 22 root     root   4.0K 2010-12-05 14:28 ..
-rw-r--r--  1 root     root     59 2010-08-12 23:35 .bash_profile
-rw-r--r--  1 root     root    358 2010-08-12 23:35 .bashrc

du - подсчет размера файлов и каталогов

Может использоваться с флагами
-s показать только результат суммы и не выводить промежуточные размеры.
-с показать общую сумму (в случае если указаны несколько целей для подсчета)
-h Показывать размеры в человеко-читабельном виде
Пример использования:
Посчитать все размеры в директории home
$ du -hsc /home/*
52K     /home/estra/
16K     /home/incoming/
2.0G    /home/fileWebServer/
2.0G    total

cd - Переход в другой каталог

Пример использования:
Перейти в другой каталог
/ $ cd home
/home $

pwd - Вывести на экран директорию в которой находитесь

Пример использования:
$ pwd
/home

cp - Копирование файла или каталога

Копирует все перечисленное с относительными или абсолютными путями в последний аргумент.
Может использоваться с флагами
-r - рекурсивное копирование (в том числе каталогов. Без этой опции каталог не будет скопирован)
В этом случае символические ссылки будут трактованы как то, на что они указывают.
-a - Полное копирование. (Эффект как от -r только все специальные файлы (ссылки, сокеты, pipe'ы) будут скопированы как есть)
-f - При копировании на все возможные вопросы (заменить ли файл и подобные) по умолчанию отвечается "Да"
-v - Отображение скопированного
Пример использования:
Скопировать 2 файла в директорию /home
$ cp -av file1.txt file2.zip /home/
`file1.txt' -> `/home/file1.txt'
`file2.zip' -> `/home/file2.zip'

mv - перемещение файла или каталога

Копирует (смотри cp) и после копирования удаляет. Для переименования следует указать файл который необходимо переименовать после чего указать новое имя. (mv oldFileName.txt newFileName.txt)
Пример использования:
$ mv file1.txt file2.zip /home

Смена прав файла/директории

Значениями по умолчанию являются:
для файлов: 644 (-rw-r--r--)
для директорий: 755 (drwxr-xr-x)
Так происходит потому, что флаг «исполнения» по-разному действует на файлы и директории. Для директории он означает возможность войти в неё.
Вариант 1
Например, можно сделать из командной строки:
Следующая команда выполнит рекурсивное применение правил для всех файлов в текущей директории, а также для всех файлов во всех поддиректориях:
# find . -type f -exec chmod 664 {} \;
Следующая команда выполнит рекурсивное применение правил для всех директорий в текущей директории, а также для всех директорий во всех поддиректориях:
# find . -type d -exec chmod 775 {} \;

Вариант 2
Можно изменить сразу несколько видов разных файлов и добавить им определенный бит в битовую маску.
Например:
# chmod -R g=rX,u=rwX,o=r
Данная конструкция говорит следующее - Поставить всем файлам и директориям вложенным в директорию следующие права - 754
Также можно изменять только отдельный бит добавляя его или убирая.
# chmod -R g+w
Данная строка вводит всем файлам и каталогам внутри возможность редактировать файлы и каталоги всем пользователям из группы файла

Diff - сравнение файлов

Diff -Urv dir1 dir2

Находим файлы, модифицированные за последние 12 дней

find . -type f -mtime -12 -print

LEAVE A COMMENT