LXF124:Совет месяца
|
|
|
Совет месяца: Ищем потерянные файлы
Случалось ли вам сохранить файл (скажем, закачку) непонятно куда? Иногда он попадает в неожиданную директорию, иногда – имеет странное имя. Стандартная команда find поможет вам решить эту проблему:
find ~ -type f -mtime 0
покажет все файлы в вашей домашней директории, созданные или измененные сегодня. По умолчанию, find ведет отсчет от полуночи: 0 означает текущий день.
Вам наверняка знаком ключ -name, позволяющий указать имя искомого файла, но find умеет гораздо больше. Опции можно комбинировать: если у вас кудато пропал загруженный tar-архив, используйте
find ~ -type f -mtime 0 -iname '*.tar.gz'
Одинарные кавычки нужны, чтобы оболочка не пыталась раскрыть шаблон, а -iname делает поиск регистронезависимым.
Проблемы с правами доступа зачастую выливаются в очень непонятные ошибки. Допустим, вы случайно создали в своем домашнем каталоге файл, работая как root. Чтобы найти объекты, не принадлежащие вам, просто наберите:
find ~ ! -user ${USER}
Оболочка устанавливает переменную окружения USER равной текущему имени пользователя, а ! означает отрицание. Поэтому данная команда ищет в вашем домашнем каталоге файлы и директории, владельцем которых не является текущий пользователь. Можно да же автоматически исправить права доступа, вот так
find ~ ! -user ${USER} -exec sudo chown ${USER} '{}' \;
Использование ключа -exec (и множества других) раскрывается на man-странице find.