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

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 »
одинаковый результат только если создать папку и в ней фаил с другим именим, это наверное единственный вариант
 

Теги:
     

    bash - странное поведение или я чего-то не понимаю

    Автор m90125

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

    Автор debianpc

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

    Автор Fieryx

    Ответов: 3
    Просмотров: 1495
    Последний ответ 11 Ноября 2012, 20:48:09
    от xbsd
    Переключение между интерпретаторами - bash и zsh!

    Автор Babay

    Ответов: 5
    Просмотров: 3495
    Последний ответ 17 Марта 2015, 06:54:57
    от Babay
    как запускать bash скрипт при старте системы?

    Автор LittleMonster

    Ответов: 9
    Просмотров: 1832
    Последний ответ 23 Июля 2017, 16:30:54
    от ogost