Автор Тема: bash Вопросы  (Прочитано 1385 раз)

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

Оффлайн СергейDebian

bash Вопросы
« : 26 Июля 2018, 09:12:56 »
Доброго времени!

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

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

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

Оффлайн ogost

Re: bash Вопросы
« Ответ #1 : 26 Июля 2018, 09:20:59 »
man find не пробовали?

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

Оффлайн СергейDebian

Re: bash Вопросы
« Ответ #2 : 26 Июля 2018, 09:22:07 »
почему?

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

path ищет же по директориям а name по имени.  как бы разные же команды...
это когда интересно иногда. какие такие могут быть случаи?
« Последнее редактирование: 26 Июля 2018, 09:27:21 от СергейDebian »
 

Оффлайн qupl

Re: bash Вопросы
« Ответ #3 : 26 Июля 2018, 09:25:41 »
Off-Topic: ShowHide
ТС, когда прекратятся риторические вопросы?

Оффлайн СергейDebian

Re: bash Вопросы
« Ответ #4 : 26 Июля 2018, 09:28:42 »
А как без них?

Cообщение объединено 26 Июля 2018, 09:34:32
man find не пробовали?
читал я man Такого не нашел
« Последнее редактирование: 26 Июля 2018, 09:34:32 от СергейDebian »
 

Оффлайн endru

Re: bash Вопросы
« Ответ #5 : 26 Июля 2018, 09:50:12 »
учись читать маны:

Цитата: 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. И все сразу встанет на места.

Если заменить в команде поиска -name, на -path, то результат поиска иногда может остаться таким же
В некоторых случаях find с -name найдет больше файлов, чем find с таким же запросом, но с -path
+1
« Последнее редактирование: 26 Июля 2018, 09:51:57 от endru »
 

Оффлайн СергейDebian

Re: bash Вопросы
« Ответ #6 : 26 Июля 2018, 22:14:39 »
Создал папку ABC, и в ней файл ABC

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

Результат разный...
« Последнее редактирование: 26 Июля 2018, 22:38:09 от СергейDebian »
 

Оффлайн qupl

Re: bash Вопросы
« Ответ #7 : 27 Июля 2018, 07:17:18 »

Оффлайн endru

Re: bash Вопросы
« Ответ #8 : 27 Июля 2018, 07:45:21 »
Создал папку ABC, и в ней файл ABC
зачем создавать одинаковые директории и файлы? так уж явно ничего не станет понятно!

Оффлайн СергейDebian

Re: bash Вопросы
« Ответ #9 : 27 Июля 2018, 20:56:43 »
одинаковый результат только если создать папку и в ней фаил с другим именим, это наверное единственный вариант
 

Теги:
     

    Использование пакетов Debian в скриптах Bash

    Автор DmitryKaznov

    Ответов: 2
    Просмотров: 1221
    Последний ответ 21 Января 2016, 09:04:36
    от Yrii
    bash: wine: command not found

    Автор LittleTroubleMaker

    Ответов: 2
    Просмотров: 704
    Последний ответ 31 Марта 2021, 04:35:24
    от Susumo
    Как в bash-скрипте ........

    Автор boryspil

    Ответов: 9
    Просмотров: 1949
    Последний ответ 08 Января 2014, 11:39:54
    от Malaheenee
    bash - странное поведение или я чего-то не понимаю

    Автор m90125

    Ответов: 6
    Просмотров: 1990
    Последний ответ 27 Октября 2015, 21:48:33
    от m90125
    bash сбор ошибок

    Автор debianpc

    Ответов: 1
    Просмотров: 743
    Последний ответ 24 Июня 2018, 20:20:42
    от yoric