Всем привет.
Поиск — неотъемлемая часть в работе. Т.ч. тут будет заметка про то как и что можно найти. Сказать более нечего.
Приступим.
Содержание
Типы поиска.
Поиск по расширению:
Способ №1:
1 | find . -type f | egrep -i "*.java|*.css|*.cs|*.sql" |
где:
- . — поиск в текущем каталоге. Так же тут можно указать путь, где необходимо произвести поиск;
- -type f — тип «файл»;
- egrep -i — утилита egrep с ключом «-i» который игнорирует регистр слов.
Способ №2:
1 | find . \( -name "*.php" -or -name "*.jpg" \) -print |
- \ — экранируем скобки;
- -print — вывести в консоль (можно не указывать, характерно для прошлый версий).
Оба способа выведут список файлов с необходимыми расширениями.
Поиск между двумя датами:
1 | find . -newerct "1 Aug 2024" ! -newerct "1 Sep 2024" -ls |
или так, что как по мне, проще:
1 | find . -newermt "2024-08-01 00:00:00" ! -newermt "2024-09-01 23:59:59" -ls |
А вот так можно найти все файла до определенной даты:
1 | find . ! -newermt "2024-08-29" -ls |
Немного о ключе newer:
- -newer file
File was modified more recently than file. If file is a symbolic link and the -H option or the -L option is in effect, the modification time of the file it points to is always used. - -newerXY reference
Succeeds if timestamp X of the file being considered is newer than timestamp Y of the file reference. The letters X and Y can be any of the following letters:- a — The access time of the file reference
- B — The birth time of the file reference
- c — The inode status change time of reference
- m — The modification time of the file reference
- t — reference is interpreted directly as a time
Some combinations are invalid; for example, it is invalid for X to be t. Some combinations are not implemented on all systems; for example B is not supported on all systems. If an invalid
or unsupported combination of XY is specified, a fatal error results. Time specifications are interpreted as for the argument to the -d option of GNU date. If you try to use the birth
time of a reference file, and the birth time cannot be determined, a fatal error message results. If you specify a test which refers to the birth time of files being examined, this test
will fail for any files where the birth time is unknown.
Поиск файлов, размер которых равен нулю — 0:
1 | find . -size 0 |
или вот так:
1 | find . -type f -empty |
- -type f — тип «файл» (данный параметр опционален),
- -empty — пустой (File is empty and is either a regular file or a directory.)
Можно сразу удалить эти файлы добавив ключ -delete (Delete files; true if removal succeeded. If the removal failed, an error message is issued. If -delete fails, find’s exit status will be nonzero (when it eventually exits). Use of -delete automatically turns on the `-depth’ option.)
Тогда команда будет выглядеть так:
1 | find . -type f -empty -delete |
Поиск текста внутри файлов.
Здесь нам поможет grep. В «» указываем что нам надо найти.
1 | grep -H -r "что ищем" / |
Опция, Назначение:
- -H — печатать имя файла для каждого совпадения;
- -r — рекурсивный поиск;
- / — указан «корень» ОС (для примера)
[заметка дополняется по мере нахождения интересных и\или не стандартных решений]
If you found an error, highlight it and press Shift + Enter or to inform us.