Intereting Posts
Как просмотреть содержимое моего жесткого диска другим пользователем, отличным от root. Я все время отказываюсь от разрешения Makefile: установка внешнего модуля ядра Linux Использование интернет-сервера в качестве прокси-сервера Как просматривать файлы, скрытые на mount на Debian 6 Определение конкретного файла, ответственного за высокий ввод-вывод Лучший способ сделать переменные локальными в сценарии source'd bash? Linux: Как работает жесткая привязка к каталогу? Смена PS1 на интерактивной подстроке bash rsync -vvv застрял в OS X без четкого объяснения удаление ядер ядра Предотвращение автоматического выбора текста при копировании Привязать unix-программу к определенному сетевому интерфейсу Диск с альтернативным GPT Unix, чтобы указать, сколько оперативной памяти было использовано во время выполнения программы? Что определяет, где отображаются сообщения TTY и загрузочные сообщения?

найти команду в Linux

Мне сказал мой друг, что можно работать с ключом -r, чтобы найти файлы рекурсивно в каталогах и подкаталогах. Пожалуйста, скажите мне, что ошибка в данном утверждении не работает

find / -type f -r -name "abc.txt" 

Причина, по которой он не работает, заключается в том, что find не имеет опции -r . Хотя верно, что для многих программ флаг -r означает «рекурсивный», это не относится ко всем, и это не так для find . Задачей find является поиск файлов и каталогов, не так часто бывает, что вы не хотите, чтобы он был рекурсивным.

Вы можете проверить параметры большинства программ с помощью команды man . Например, man find . Поскольку руководство по поиску, огромно, вы можете найти его для опции -r :

 $ man find | grep -w -- -r 

The – просто говорит grep прекратить чтение параметров, без него, -r будет передан как опция grep. Кроме того, вы можете выполнять поиск на странице руководства, нажав / затем записывая то, что вы хотите найти, затем введите.

Эта команда ничего не возвращает, сравнивает ее с той, которая ищет руководство cp :

 $ man cp | grep -w -- -r -R, -r, --recursive 

Поскольку find всегда рекурсивный, то, что он имеет, имеет обратный флаг, который позволяет вам выбрать, сколько подкаталогов оно должно спускаться:

  -maxdepth levels Descend at most levels (a non-negative integer) levels of direc‐ tories below the command line arguments. -maxdepth 0 means only apply the tests and actions to the command line arguments. -mindepth levels Do not apply any tests or actions at levels less than levels (a non-negative integer). -mindepth 1 means process all files except the command line arguments. 

Поэтому, всякий раз, когда у вас возникают сомнения относительно команды, прочитайте ее страницу руководства, потому что вы никогда не знаете, что может сделать конкретный вариант. Например:

 $ man sort | grep -w -- -r -r, --reverse $ man mount | grep -w -- -r, -r, --read-only $ man awk | grep -A 8 -w -- -r -r --re-interval Enable the use of interval expressions in regular expression matching (see Regular Expressions, below). Interval expressions were not traditionally available in the AWK language. The POSIX standard added them, to make awk and egrep consistent with each other. They are enabled by default, but this option remains for use with --traditional. $ man sed | grep -w -- -r -r, --regexp-extended $ man xterm | grep -w -- -r -r This option indicates that reverse video should be simulated by swapping the foreground and background colors. 

Вы поняли эту идею.

find уже рекурсивный, вам не нужен -r