debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: find - поиск файлов - памятка по команде  (Прочитано 3054 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Leo

  • Старожил
  • ****
  • Topic Author
  • Сообщений: 843
  • Jabber: leo.bs@jabber.ru
Поиск файлов, модифицированных после указанной даты:
find /path/to/dir -newermt "date"
find /path/to/dir -newermt "Feb 07"
find /path/to/dir -newermt "yyyy-mm-dd"

Поиск файлов, доступ к которым был между указанными датами:
find /path/to/dir -type f -newerat 2008-09-29 ! -newerat 2008-09-30
Поиск всех модифицированных файлов в промежутке дат
find /path/to/dir -type f -name "*" -newermt 2013-02-07 ! -newermt 2013-02-08
Поиск файлов новее файла /tmp/foo
find /path/to/dir -newer /tmp/foo
Поиск текстовых файлов, которые были модифицированы за последние 60 дней:
find /path/to/dir -iname "*.txt" -mtime -60
Подсчёт количества изменённых за последние 60 дней текстовых файлов с помощью wc:
find /path/to/dir -iname "*.txt" -mtime -60 | wc -l
Поиск всех mp3-шек, которые были прослушаны за последние 10 дней:
find /path/to/dir -iname "*.mp3" -atime 10 -type -f
Использование опции -ls для детализации вывода:
find /path/to/dir -type f -name "*.py" -newermt 2013-02-07 ! -newermt 2013-02-08 -ls
Использование опции -delete для удаления найденных файлов:
find /path/to/dir -type f -name "*.py" -newermt 2013-02-07 ! -newermt 2013-02-08 -delete
« Последнее редактирование: 04 Июнь 2014, 16:12:06 от Leo »
 

Оффлайн endru

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1755
  • Новосибирск
  • Jabber: endru@jabber.ru
Re: find - поиск файлов - памятка по команде
« Ответ #1 : 04 Июнь 2014, 17:22:18 »
Рекурсивное изменение прав доступа только для директорий!
find /home/user/ -type d -exec chmod 755 {} \;
Рекурсивное изменение прав доступа только для файлов!
find /home/user/ -type f -exec chmod 644 {} \;
Находит все файлы *.sh, выводит их на экран. Если в найденном файле есть слова copy, то выводит эти строки на экран
find /home/user/ -name "*.sh" -exec echo {} \; -exec grep copy {} \;
результат: ShowHide

.file1.sh
.file2.sh
#copy my files
cp -r /home/user/job/* /home/user/copy_job/
.file3.sh


Для всех найденных файлов *.sh сменит владельца на root и выставит права 700
find /home/user/job/ -name "*.sh" -exec chown root {} \; -exec chmod 700 {} \;
Сменит расширение найденных файлов с .htm на .html
find /home/user/job/ -name "*.htm" -exec rename 's/.htm/.html/g' {} \;
Скопировать найденные файлы на удаленный сервер (предварительно нужно настроить ssh - без пароля, чтобы постоянно не вводить пароль)
find /home/user/ -name "*.txt" -exec scp {} user@server:/path/to/dir/ \;
Найти файлы размер которых больше 100Мб:
find /home/user/ -type f -size +100M
Бывает такое, что в консоли файлы отображаются как кракозябры, не правильная кодировка. Как их удалить, исправить?
1) Смотрим inode файлов в текущей директории
2) находим файл с помощью find и делаем с ним все что угодно, например переименовываем
$ ls -li
394509 -rw-r--r-- 1 user user  16005 Июн 20 10:38 ??????.docx
$ find -inum 394509 -exec mv {} "MyDOCfile.docx" \;
$ ls -l
-rw-r--r-- 1 user user  16005 Июн 20 10:38 MyDOCfile.docx
« Последнее редактирование: 14 Октябрь 2016, 06:30:05 от endru »
 

Русскоязычное сообщество Debian GNU/Linux

Re: find - поиск файлов - памятка по команде
« Ответ #1 : 04 Июнь 2014, 17:22:18 »


Теги: