Командная строка

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

Основные команды для работы с файлами и директориями

Навигация

# Текущая директория
pwd

# Перейти в директорию
cd /path/to/directory
cd ~          # домашняя директория
cd ..         # на уровень выше
cd -          # предыдущая директория

# Содержимое директории
ls
ls -la        # подробно, включая скрытые
ls -lh        # с человекочитаемыми размерами
ls -lt        # сортировка по времени

Создание и удаление

# Создать директорию
mkdir dirname
mkdir -p path/to/nested/dir    # с родительскими

# Создать файл
touch filename
echo "content" > filename

# Удалить файл
rm filename
rm -f filename                 # без подтверждения

# Удалить директорию
rmdir dirname                  # только пустую
rm -r dirname                  # рекурсивно
rm -rf dirname                 # без подтверждения

Копирование и перемещение

# Копировать файл
cp source dest
cp -r source_dir dest_dir      # директорию рекурсивно
cp -p source dest              # сохранить атрибуты

# Переместить/переименовать
mv oldname newname
mv file /path/to/destination/

# Создать ссылку
ln -s /path/to/original link_name    # символическая
ln /path/to/original link_name       # жёсткая

Просмотр содержимого

# Вывести файл
cat filename
cat -n filename                # с номерами строк

# Постраничный просмотр
less filename
more filename

# Начало/конец файла
head filename
head -n 20 filename            # первые 20 строк
tail filename
tail -n 20 filename            # последние 20 строк
tail -f filename               # следить за изменениями

Поиск файлов

# По имени
find /path -name "*.txt"
find /path -iname "*.txt"      # без учёта регистра

# По типу
find /path -type f             # файлы
find /path -type d             # директории

# По размеру
find /path -size +100M         # больше 100MB
find /path -size -1k           # меньше 1KB

# По времени изменения
find /path -mtime -7           # изменённые за 7 дней

# С выполнением команды
find /path -name "*.log" -exec rm {} \;

# Быстрый поиск (по базе данных)
locate filename
sudo updatedb                  # обновить базу

Поиск в файлах

# Поиск текста
grep "pattern" filename
grep -r "pattern" /path        # рекурсивно
grep -i "pattern" filename     # без учёта регистра
grep -n "pattern" filename     # с номерами строк
grep -v "pattern" filename     # инвертировать (не содержит)
grep -l "pattern" /path/*      # только имена файлов

# Расширенные регулярные выражения
grep -E "pattern1|pattern2" filename

Права доступа

# Изменить права
chmod 755 filename
chmod u+x filename             # добавить выполнение владельцу
chmod -R 644 dirname           # рекурсивно

# Права:
# r=4 (чтение), w=2 (запись), x=1 (выполнение)
# 755 = rwxr-xr-x
# 644 = rw-r--r--

# Изменить владельца
chown user:group filename
chown -R user:group dirname

Информация о файлах

# Тип файла
file filename

# Размер
du -sh filename
du -sh dirname/*

# Статистика
stat filename

# Контрольная сумма
md5sum filename
sha256sum filename

Архивация

# tar
tar -cvf archive.tar files/          # создать
tar -xvf archive.tar                  # распаковать
tar -czvf archive.tar.gz files/       # с gzip
tar -xzvf archive.tar.gz              # распаковать gz
tar -cjvf archive.tar.bz2 files/      # с bzip2

# zip
zip -r archive.zip files/
unzip archive.zip

# 7z
7z a archive.7z files/
7z x archive.7z