bash Вопросы

Автор СергейDebian, 26 июля 2018, 09:12:56

« назад - далее »

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

СергейDebian

Доброго времени!

Есть список вопросов по командам, хотелось бы разобраться, самостоятельно не выходит. Поэтому создал тему. может поможете подскажете куда копать, и почему именно так.

Задание на понимание работы опций -path и -name команды find. Отметьте все верные утверждения из перечисленных ниже.

Тест — Выберите один или несколько вариантов из списка
Опция -path аналогична -name, но игнорирует размер букв (строчные/прописные) в имени файла
Если заменить в команде поиска -name, на -path, то результат поиска иногда может остаться таким же
В некоторых случаях find с -name найдет больше файлов, чем find с таким же запросом, но с -path
Если заменить в команде поиска -name, на -path, то результат поиска всегда останется неизменным
Опции -path и -name всегда работают одинаково

ogost

man find не пробовали?

На мой взгляд верны следующие выражения:
Цитировать
Если заменить в команде поиска -name, на -path, то результат поиска иногда может остаться таким же
В некоторых случаях find с -name найдет больше файлов, чем find с таким же запросом, но с -path

СергейDebian

#2
почему?

Если заменить в команде поиска -name, на -path, то результат поиска иногда может остаться таким же

path ищет же по директориям а name по имени.  как бы разные же команды...
это когда интересно иногда. какие такие могут быть случаи?

qupl

[offtopic]ТС, когда прекратятся риторические вопросы? [/offtopic]

СергейDebian

#4
А как без них?

Cообщение объединено 26 июля 2018, 09:34:32

Цитата: ogost от 26 июля 2018, 09:20:59man find не пробовали?
читал я man Такого не нашел

endru

#5
учись читать маны:

Цитата: man find-name pattern
              Base of file name (the path with the leading directories removed) matches shell pattern pattern.  The metacharacters (`*', `?', and `[]') match a `.' at the start of the base name (this is a change in findutils-4.2.2;
              see  section STANDARDS CONFORMANCE below).  To ignore a directory and the files under it, use -prune; see an example in the description of -path.  Braces are not recognised as being special, despite the fact that some
              shells including Bash imbue braces with a special meaning in shell patterns.  The filename matching is performed with the use of the fnmatch(3) library function.   Don't forget to enclose  the  pattern  in  quotes  in
              order to protect it from expansion by the shell.

-path pattern
              File name matches shell pattern pattern.  The metacharacters do not treat `/' or `.' specially; so, for example,
                        find . -path "./sr*sc"
              will print an entry for a directory called `./src/misc' (if one exists).  To ignore a whole directory tree, use -prune rather than checking every file in the tree.  For example, to skip the directory  `src/emacs'  and
              all files and directories under it, and print the names of the other files found, do something like this:
                        find . -path ./src/emacs -prune -o -print
              Note that the pattern match test applies to the whole file name, starting from one of the start points named on the command line.  It would only make sense to use an absolute path name here if the relevant start point
              is also an absolute path.  This means that this command will never match anything:
                        find bar -path /foo/bar/myfile -print
              The predicate -path is also supported by HP-UX find and will be in a forthcoming version of the POSIX standard.


Если man ясности не дает.
Создаешь парочку директорий с файлами и фигачишь команды с name и path. И все сразу встанет на места.

Цитата: ogost от 26 июля 2018, 09:20:59Если заменить в команде поиска -name, на -path, то результат поиска иногда может остаться таким же
В некоторых случаях find с -name найдет больше файлов, чем find с таким же запросом, но с -path
+1

СергейDebian

#6
Создал папку ABC, и в ней файл ABC

Ввожу:
find -name ABC
и
find -path ABC

Результат разный...


endru

Цитата: СергейDebian от 26 июля 2018, 22:14:39Создал папку ABC, и в ней файл ABC
зачем создавать одинаковые директории и файлы? так уж явно ничего не станет понятно!

СергейDebian

одинаковый результат только если создать папку и в ней фаил с другим именим, это наверное единственный вариант