Подробное объяснение параметров команды find в Linux

Linux

найти общие предостережения

использоватьnameОпции

Вариант имени файлаfindНаиболее распространенный вариант команды, либо отдельно, либо в сочетании с другими параметрами. Шаблон имени файла может использоваться для сопоставления файлов, не забудьте заключить шаблон имени файла в кавычки. Независимо от текущего пути, если вы хотите находиться в своем собственном корневом каталоге$HOMEНайдите имена файлов, которые соответствуют*.logфайл, использовать~В качестве параметра pathname используется тильда~Представляет домашний каталог текущего пользователя.

Найти домашний каталог текущего пользователя, вошедшего в систему.logдокумент

> find ~ -name "*.log"

Найти файлы в текущем каталоге, начинающиеся с заглавной буквы

> find . -name "[A-Z]*"

найти/etcв каталогеsysфайл, начинающийся с

> find /etc -name "sys*"

Запрос текущего каталога, начинающегося с заглавной буквы + 3 цифры.pngкартинка

> find . -name "[A-Z]*[0-9][0-9][0-9].png"

с перманентным вариантом

Используйте параметр -perm в соответствии с режимом доступа к файлу, чтобы найти файл в соответствии с режимом доступа к файлу. Для разрешений лучше всего использовать восьмеричное представление. Например, если вы ищете файл с битом доступа к файлу, равным 755, в текущем каталоге, то есть владелец файла может читать, записывать и выполнять, а другие пользователи могут читать и выполнять файл, вы можете использовать

> find . -perm 755 

find -perm -mode, что означает, что 1, преобразованная в двоичный файл в режиме, должна совпадать с битами прав доступа к файлу.Например, если режим = 644, преобразование в двоичный код будет 110 100 100, и бит разрешения файла, который нужно найти, также может быть преобразован в двоичное число. Части с 1 в бите должны точно совпадать, а 0 не имеют значения. Например, если права искомого файла преобразованы в двоичные числа 111 111 111, то этот пример совпадет, а если 100 100 100, то не совпадет. Таким образом, роль этого «-» сводится к сопоставлению файлов с большим количеством разрешений, чем режим (я не могу найти слов, чтобы описать это)

игнорировать каталог

Если вы хотите игнорировать каталог при поиске файла, потому что вы знаете, что файл, который вы ищете, не существует в этом каталоге, вы можете использовать-pruneопция, чтобы указать каталоги для игнорирования. Будьте осторожны при использовании параметра -prune, потому что если вы используете оба-depthвариант, то-pruneварианты будутfindкоманда игнорируется. Если вы хотите найти файлы в текущем каталоге, но не хотите./binНайдите в каталоге, вы можете использовать

> find . -path "./bin" -prune -o -print

Избегайте нескольких папок

> find . \( -path "./bin" -o -path "./doc" \) -prune -o -print

Скобки указывают на комбинацию выражений.\ссылаться, указыватьshellСледующие символы не даются специальной интерпретации, но оставляются на усмотрение.findкоманду объяснить ее значение.

Найдите определенный файл, добавьте такие параметры, как -name после -o

> find . \( -path "./bin" -o -path "./doc" \) -prune -o  -name "*.txt" -print

user nouserа такжеgroup nogroup

Найти владельца в текущем каталогеrootдокумент

> find . -user root 

Найти удаленные файлы владельца текущего каталога

> find . -nouser

Найдите группу, к которой вы принадлежите, в текущем каталогеrootдокумент

> find . -group root 

Найти файлы, удаленные группой, к которой принадлежит текущий каталог

> find . -nogroup

Поиск файлов по времени

Найти файлы, измененные в течение 7 дней

> find . -mtime -7

Найти файлы, измененные до 7 дней

> find . mtime +7

Найти файлы новее или старше определенного файла

Найти время изменения, чем файлa.logновый файл данбиb.logстарый файл

> find . -newer a.log ! -newer b.log

Найдите время изменения в чемa.logфайл новый файл

> find . -newer a.log

typeОпции

существует/etcНайти все каталоги в каталоге

> find /etc -type d

существует/etcНайти все файлы символических ссылок в каталоге

> find /etc -type l

sizeпараметр

Файл можно искать по длине файла.Длина упомянутого здесь файла может измеряться в блоках или байтах. Выражение длины файла, измеренной в байтах, равно N c, длина файла, измеренная в блоках, может быть выражена только числами. При поиске файлов по длине файла обычно используется эта длина файла, выраженная в байтах, а при просмотре размера файловой системы ее проще преобразовать, используя блоки для измерения.

Найти в текущем каталоге файлы, длина которых больше100Mбайтовый файл

> find . -size +100M

Используйте параметр глубины

При использовании команды find вы можете сопоставить все файлы перед поиском в подкаталогах. Используйте опцию depth, чтобы команда find делала это. Одна из причин этого заключается в том, что при использовании команды find для резервного копирования файловой системы на ленту желательно сначала выполнить резервное копирование всех файлов, а затем — файлов в подкаталогах.

Сначала выведите подконтент, затем выведите содержимое каталога верхнего уровня, пока не появится верхний уровень.

> find test -depth  ! -empty
test/test1/test2/test3
test/test1/test2
test/test1
test

Сначала выведите каталог верхнего уровня, а затем выведите содержимое подкаталогов ниже, до самого нижнего уровня:

> find test   ! -empty
test
test/test1
test/test1/test2
test/test1/test2/test3

параметры монтирования

Чтобы найти файлы в текущей файловой системе (без входа в другие файловые системы), вы можете использовать опцию монтирования команды find.

Найти файлы в этой файловой системе, начиная с текущего каталога с именами, начинающимися с.txtконец файла

> find . -mount -name "*.txt"  -print

Оригинальная ссылка:starter.com/starternotes/com…Официальный аккаунт WeChat: Станция «Начало работы»

Руководство по быстрой проверке общих команд Linux Скачать PDF