Как управлять файлами и папками в Linux: базовые команды для работы в терминале
Как управлять файлами и папками в Linux через терминал? Используйте команды cp для копирования, mv для переименования и перемещения, find для поиска по имени, типу и размеру.
Копирование файлов и папок
Для создания копий используется команда cp (от англ. copy).
Копирование файла: cp source.txt destination.txt создает копию файла в текущей или указанной директории.
Рекурсивное копирование: Для копирования каталогов вместе со всем содержимым необходимо использовать флаг -R или -r (например, cp -R /src/dir /dest/dir).
Дополнительные инструменты: Для синхронизации и продвинутого копирования больших объемов данных часто применяют утилиту rsync, а для передачи файлов между хостами — scp.
Переименование и перемещение
В Linux нет отдельной базовой команды «rename»; для переименования используется утилита mv (от англ. move), так как переименование технически является перемещением файла внутри одной директории.
Переименование: Команда mv old_name.txt new_name.txt изменяет имя файла, оставляя его в той же папке.
Перемещение: Синтаксис mv file.txt /path/to/dir/ переносит объект в другой каталог.
Массовое переименование: Для изменения имен группы файлов по шаблону используется специальная утилита rename, которая поддерживает регулярные выражения.
Безопасность: Опция -b или --backup в команде mv позволяет сохранить резервную копию целевого файла при перезаписи.
Поиск файлов
Основным инструментом поиска в командной строке является утилита find.
Поиск по имени: Используется параметр -name (например, find /home -name "*.txt") для локализации файлов по маске.
Фильтрация: Можно искать объекты по типу (-type f для файлов, -type d для папок), размеру, дате изменения или владельцу.
Пустые файлы: Утилита позволяет находить пустые файлы и каталоги с помощью флага -empty.
Частые ошибки
- Отсутствие флага рекурсии при копировании папок: При попытке скопировать директорию командой
cpбез флага-Rили-rоперация не выполнится. - Попытка использовать несуществующую базовую команду
rename: В Linux переименование выполняется черезmv, а для массовых операций требуется отдельная утилитаrenameс поддержкой регулярных выражений. - Перезапись без резервной копии: При перемещении или переименовании с перезаписью целевого файла данные могут быть потеряны, если не использовать опцию
-bили--backup.
FAQ
Как скопировать папку целиком?
Используйте команду cp с флагом рекурсии -R или -r, например: cp -R /src/dir /dest/dir.
Чем отличается переименование от перемещения?
В Linux переименование технически является перемещением файла внутри одной директории, поэтому обе операции выполняются утилитой mv. Синтаксис mv old_name.txt new_name.txt переименовывает файл, а mv file.txt /path/to/dir/ переносит его в другой каталог.
Как найти все текстовые файлы в домашней директории?
Используйте команду find /home -name "*.txt", которая ищет файлы по маске с помощью параметра -name.
Можно ли искать файлы по типу и размеру?
Да, утилита find поддерживает фильтрацию по типу (-type f для файлов, -type d для папок), размеру, дате изменения и владельцу.