Задать вопрос
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    hint000, Анекдот зачет , хоть и старый, но спрашивал потому что напоролся на такую ситуацию, а не для того чтобы показать что утилита касячит)
    Не смог на гуглить, как не напороться на такое в будущем, вот и задал вопрос.
    А то больше похоже на такой анекдот.

    Дают Терминатору фото , говорят - посмотри, на фото маньяк.
    Теперь посмотри на толпу у метро , найди маньяка и убей.
    Терминатор достает бфг и фигачит всех в фарш.
    А потом говорит - Маньяков не обнаружено.

    Но раз решения нет то хз.
    Забавно почему в случае -delete не пробует удалить '.' больше похоже на костыль.
    Написано
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    Такие скобочки подойдут? "*.4mp"

    hard@dpc:~/test$ ll
    + ls --color=auto -l --color=auto
    итого 4
    drwxr-xr-x. 2 hard hard 4096 апр 21 02:52 1
    -rw-r--r--. 1 hard hard    0 апр 21 03:19 1.mp3
    -rw-r--r--. 1 hard hard    0 апр 21 03:19 1.mp4
    -rw-r--r--. 1 hard hard    0 апр 21 03:19 1.txt
    ++ printf '\033]0;%s@%s:%s\007' hard dpc '~/test'
    hard@dpc:~/test$ find . name "*.4mp" -exec rm {} +
    + find . name '*.4mp' -exec rm '{}' +
    find: ‘name’: Нет такого файла или каталога
    find: ‘*.4mp’: Нет такого файла или каталога
    rm: невозможно удалить '.': Это каталог
    rm: невозможно удалить './1': Это каталог
    ++ printf '\033]0;%s@%s:%s\007' hard dpc '~/test'
    hard@dpc:~/test$ ll
    + ls --color=auto -l --color=auto
    итого 4
    drwxr-xr-x. 2 hard hard 4096 апр 21 02:52 1
    ++ printf '\033]0;%s@%s:%s\007' hard dpc '~/test'
    hard@dpc:~/test$

    Режим отладки как-то не пояснил удаление фаилов.

    Find не смог найти ни чего но удалил все на что хватило прав? Это правда адекватное поведение?
    Да параметр -name написан с ошибкой, но вывод тогда не должен был лететь в пайплай на удаление.
    Ведь если сделать
    find . name "*.4mp" 2>/dev/null
    такого не будет
    Написано
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    $ find . что_угодно -print 2>/dev/null
    Это конечно хорошо , но как сделать такое поведение по умолчанию?
    Те чтобы find отправляла ошибки не в общий поток ( 2 - поток ошибок ).

    Ты же пишешь 2 > /dev/null , те не фильтруешь как-то, просто ошибки >/dev/null
    А не ошибки > rm -rf

    Те ошибки в паиплайн должны передаваться как исключения/ошибки а не как результат работы или НЕ передаваться вообще и возвращать сигнал аварийного завершения

    Не ужели "Поиск" это должна быть потенциально опасная команда? "Поиск"!!!
    Получается да, нуб может расфигачить всё командой для этого не предназначенной)
    Написано
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    Saboteur, * не требует кавычек , они нужны для пробелов и пр спец символов и управляющих конструкции.
    Проблема не в том что ни чего не нашло а в том что вывод консоли НЕ относящийся к результату поиска полетел дальше по пайпу.
    И это Не ожидаемое поведение при поиске, снести себе домашний каталог полностью просто написав

    find ~ iname '*.mp4' -exec rm {} +

    Если бы просто вывелся результат :
    find: ‘iname’: Нет такого файла или каталога
    find: ‘*.mp4’: Нет такого файла или каталога

    было бы 0 вопросов.
    Но домашний каталог теперь очищен от всего на что хватило прав)))

    hard@dpc:~$ ll
    итого 0

    Удаление происходит только потому что в паип подается лишнии вывод.

    Вопрос все таки в том. Как, даже при ошибке в синтаксисе , убрать лишний вывод из консоли ПО _УМОЛЧАНИЮ , оставить только результат поиска.

    Основная претензия именно к не очевидному поведению

    Не очевидное, потому что, сначала ДЕЛАЮТ (удаляют) все, а потом ИЩУТ (говорят что ничего не нашли).
    При ПОИСКЕ ожидаешь, что сначала ИЩУТ а потом ДЕЛАЮТ (удаляют) что совпало с шаблоном.

    Если посмотреть первоисточник
    https://www.gnu.org/software/findutils/ то там
    find где_ищем что_ищем параметры
    То такого поведения не ожидаешь.

    И тут появилось еще 2 вопроса.

    ard@dpc:~$ ll test/
    итого 0
    -rw-r--r--. 1 hard hard 0 апр 20 21:11 1.mp4
    -rw-r--r--. 1 hard hard 0 апр 20 21:11 1.txt
    hard@dpc:~$ find test/  *.mp4
    test/
    test/1.mp4
    test/1.txt
    1A2476A-720p.mp4
    1E536DE-720p.mp4
    39C6939-720p.mp4
    490D97B-720p.mp4
    552B56D-720p.mp4
    96146E6-720p.mp4
    B7B1ABA-720p.mp4
    EDCA734-720p.mp4
    ff (16).mp4
    IMG_2348.mp4
    IMG_5760.mp4
    video_2025-01-28_18-37-58.mp4
    video_2025-03-21_00-40-53.mp4

    то есть параметр каталога был проигнорирован и поиск пошёл в каталоге сессии )))
    все неименованные параметры воспринимаются как имена фаилов? (шаблоны поиска) если нет name или iname ?

    2)
    интересная дихотомия

    find . что_угодно -exect rm {} +
    попытается удалить '.' и сообщит об этом (интересно что будет под рутом и с rm -rf но мне как то слабо проверять , тк . это вроде алиас фс а не ос)
    find . что_угодно -delete

    не выведет сообщение что пыталось удалить '.' (скорее всего не попытается, не знаю как проверить была ли попытка)

    Но вопрос все таки в том, Как даже при ошибке в синтаксисе , убрать лишний вывод из консоли ПО _УМОЛЧАНИЮ , оставить только результат поиска.
    Написано
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    Александр Карабанов, Да неправильное , согласен полностью.
    Но поведение тоже крайне не очевидное, с 1 параметром в консоль find не выплевыват все и критичного не происходит. Просто понимаешь что ошибся.
    find 11*.mp4
    find: ‘11*.mp4’: Нет такого файла или каталога

    Но если у find 2 параметра то начинается "интересное"
    ard@dpc:~$ ll test/
    итого 0
    -rw-r--r--. 1 hard hard 0 апр 20 21:11 1.mp4
    -rw-r--r--. 1 hard hard 0 апр 20 21:11 1.txt
    hard@dpc:~$ find test/  *.mp4
    test/
    test/1.mp4
    test/1.txt
    1A2476A-720p.mp4
    1E536DE-720p.mp4
    39C6939-720p.mp4
    490D97B-720p.mp4
    552B56D-720p.mp4
    96146E6-720p.mp4
    B7B1ABA-720p.mp4
    EDCA734-720p.mp4
    ff (16).mp4
    IMG_2348.mp4
    IMG_5760.mp4
    video_2025-01-28_18-37-58.mp4
    video_2025-03-21_00-40-53.mp4


    Вопрос все таки в том. Как, даже при ошибке в синтаксисе , убрать лишний вывод из консоли ПО _УМОЛЧАНИЮ , оставить только результат поиска.


    Не очевидное, потому что, сначала ДЕЛАЮТ (удаляют) все, а потом ИЩУТ (говорят что ничего не нашли).
    При ПОИСКЕ ожидаешь, что сначала ИЩУТ а потом ДЕЛАЮТ (удаляют) что совпало с шаблоном.

    Если посмотреть первоисточник
    https://www.gnu.org/software/findutils/ то там
    find где_ищем что_ищем параметры
    То такого поведения не ожидаешь.

    И тут появилось еще 2 вопроса.

    ard@dpc:~$ ll test/
    итого 0
    -rw-r--r--. 1 hard hard 0 апр 20 21:11 1.mp4
    -rw-r--r--. 1 hard hard 0 апр 20 21:11 1.txt
    hard@dpc:~$ find test/  *.mp4
    test/
    test/1.mp4
    test/1.txt
    1A2476A-720p.mp4
    1E536DE-720p.mp4
    39C6939-720p.mp4
    490D97B-720p.mp4
    552B56D-720p.mp4
    96146E6-720p.mp4
    B7B1ABA-720p.mp4
    EDCA734-720p.mp4
    ff (16).mp4
    IMG_2348.mp4
    IMG_5760.mp4
    video_2025-01-28_18-37-58.mp4
    video_2025-03-21_00-40-53.mp4

    то есть параметр каталога был проигнорирован и поиск пошёл в каталоге сессии )))
    все неименованные параметры воспринимаются как имена фаилов? (шаблоны поиска) если нет name или iname ?

    2)
    интересная дихотомия
    find . что_угодно -exect rm {} +
    попытается удалить '.' и сообщит об этом

    find . что_угодно -delete
    не выведет сообщение что пыталось удалить '.' (скорее всего не попытается, не знаю как проверить была ли попытка)

    Но вопрос все таки в том, Как даже при ошибке в синтаксисе , убрать лишний вывод из консоли ПО _УМОЛЧАНИЮ , оставить только результат поиска.

    Потому что , например , не ожидаешь что удалишь весь домашнии каталог еще до завершения поиска
    find ~ iname='*.mp4' -exec rm {} +
    Написано
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    680523c4ee367080118948.pngНе совсем без указания -name или -iname имя берется из 2 параметра.
    Например
    find . *.t
    Сначала выведет содержимое директории а потом результат поиска
    Если использовать
    find . -iname *.t
    то только результат поиска.
    Но проблема в том что при ошибке в параметре . например
    find . iname = *.txt
    Сначала выведет содержимое директории а потом что фаил "iname = *.txt" не наиден
    Написано
  • Как для find отключить вывод лога при поиске без параметра -name или -iname?

    @imba Автор вопроса
    6805245292b92753602070.png680524575ce4b050821431.pngпроблема в том что если у find указать -exect и команду то команда будет применена ко всем обьектам из вывода , даже если в конце вывода будет написано что ничего не найдено.
    Уточню find с 2 параметрами . Например
    find . *.txt
    Сначала выведет содержимое , применит -exect а потом скажет что нашлось и применит -exect если будет к чему
    Написано
  • Pip в Пайтон по росту не устанавливается, что делать?

    @imba
    Тихон Блинов, в path указываются каталоги где исполняемые фаилы лежат а не сами фаилы.
    это не важно если при вызове в консоли писать полныи путь в фаилу.

    Не знаю что у тебя там с системои но даваи простои вариант
    1) качаешь ембедит версию - Windows embeddable package (32-bit) (или любую embeddable по твоему вкусу)
    2) разархивирушь
    3) качаешь установщик пипа bootstrap.pypa.io/get-pip.py и сохраняешь в папку с python.exe
    4) в консоли переходишь в папку с python, запускаешь
    python get-pip.py
    5) после завершения проверяешь фаил python._pth в каталоге питона
    нужно раскоментировать строчку
    import site

    6) итог - есть рабочии питон и рабочии пип , запускать с указанием полных путеи, или пропиши каталоги в path

    если есть желание почитать про установку пипа можно тут
    pip.pypa.io/en/stable/installation/#get-pip-py
    Написано
  • Pip в Пайтон по росту не устанавливается, что делать?

    @imba
    Тихон Блинов, то что он есть в path не значит что фаилик есть физически - "битая ссылка"

    о чем и говорит это сообщение об ошибке, если в path все записано прапильно
    "pip не является внутренней или внешней командой, исполняемой программой или пакетным файлом"
    Написано
  • Pip в Пайтон по росту не устанавливается, что делать?

    @imba
    Если python из консоли запускается то стоит проверить а pip вообще есть , обычно каталог_питона /Scripts/pip.exe
    Если нет, поставь вручную
    Написано
  • Как закрыты зависшие терминалы Python в Windows 11 Pro?

    @imba
    Если совсем странное искать, если системныи выход не срабатывает в pythone, может в скрипте кто-то отлавливает BaseException вместо Exception. Через BaseException закрытие терминала/выход можно скипнуть.
    Это если процесс питона не вышел, а хром если из драивера вышли но не закрыли
    Написано