Работа с файлами и каталогами в Linux
Перейти к навигации
Перейти к поиску
Атрибуты
- a - файл можно открыть на запись только в режиме добавления
- A - открытие файла не изменяет время доступа atime (access time)
- c - автоматическое сжатие данных файла ядром, прозрачно для файловых операций
- C -
- d - не бэкапить, файл будет пропущен при бэкапе, поддерживается утилитой dump (поддержку в других средствах резервирования нужно проверять)
- D -
- e - указывает на то что файл содержит блоки данных на диске, атрибут нельзя удалить утилитой chattr
- E - указывает на то что файл зашифрован (используется экспериментальными патчами шифрования, изменение с помощью chattr может быть недоступно)
- F - игнорирование регистра символов (верхний/нижний) для путей ниже данного каталога, атрибут может быть установлен только на пустых каталогах в файловых системах с включенной возможностью casefold
- i - запрет на изменение (файл нельзя открыть в режиме записи, удалить, переименовать, создать на него ссылку, изменить большинство его метаданных), для изменения данного атрибута требуются права суперпользователя
- I -
- j -
- N -
- P -
- s -
- S -
- t -
- T -
- u -
Изменение атрибутов
chattr +-attribute path # примеры chattr +i /home/user/readme.txt chattr -i /home/user/readme.txt
Просмотр атрибутов
lsattr path
Поиск дубликатов файлов
Утилита командной строки fdupes находит файлы одинакового размера, с помощью md5sum сравнивает хеш начального фрагмента, потом всего файла, потом проводит полное побайтовое сравнение
Установка fdupes
# CentOS 8 dnf install epel-release dnf install fdupes
Примеры использования fdupes
# найти дубли в каталоге dir1 (без подкаталогов) и в каталоге dir2 (с подкаталогами) fdupes /path/to/dir1 -r /path/to/dir2 # найти дубли и запросить какой вариант оставить fdupes -rd /path/to/directory
Поиск и выполнение операций над файлами,каталогами
Показать пустые файлы и папки
find /path/to/directory -empty
Показать только пустые файлы
find /path/to/directory -type f -empty
Показать только пустые папки
find /path/to/directory -type d -empty
Удаление пустых файлов
find /path/to/directory -type f -empty -delete
Удаление пустых каталогов
# вариант 1 find /path/to/directory -type d -empty -delete # вариант 2 find /path/to/directory -type d -empty -exec rmdir '{}' \;
Удаление файлов старше 14 дней
find /path/to/directory -type f -mtime +14 -exec rm -f '{}' \;
Удаление файлов по маске
find /path/to/directory -type f -name '*some_string*.txt' -exec rm -f '{}' \;
Надежное удаление
Команда shred переписывает содержимое файлов генератором случайных данных, что делает восстановление содержимого практически невозможным.
# затирание диска shred /dev/<блочное_устройство> # проход по всем подкаталогам и затирание содержимого файлов find <dir> -type f -exec shred {} \;