find ~ iname '*.mp4' -exec rm {} +
find: ‘iname’: Нет такого файла или каталога
find: ‘*.mp4’: Нет такого файла или каталога
hard@dpc:~$ ll
итого 0
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
find . что_угодно -exect rm {} +
find . что_угодно -delete
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 "*.4mp" 2>/dev/null
без параметра -name или -inameА с каким параметром? Каким-то критерием вы ограничили поиск?
find начинает выводить в консоль лог поиска (папки и фаилы которые были проверены)Это не лог, а результат поиска. Вы же хотите получить какой-то результат, иначе бы не запускали команду.
> /dev/null
abook:/tmp/test$ ls -1
1.txt
2.txt
abook:/tmp/test$ find . -iname "*.t"
abook:/tmp/test$ ничего не нашёл - нет ни одного файла подходящего под указанные параметры
abook:/tmp/test$ ls *.t
ls: невозможно получить доступ к '*.t': Нет такого файла или каталога
abook:/tmp/test$ find . -iname "*.t*"
./1.txt
./2.txt
abook:/tmp/test$ find . -iname "*.txt"
./1.txt
./2.txt
rm
менее эффективно чем использовать флаг -delete
- на небольшом количестве файлов незаметно, но на объёмах очень заметно, да и команда получается проще find 11*.mp4
find: ‘11*.mp4’: Нет такого файла или каталога
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
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
find ~ iname='*.mp4' -exec rm {} +
Как даже при ошибке в синтаксисе , убрать лишний вывод из консоли ПО _УМОЛЧАНИЮ , оставить только результат поиска.
abook:/tmp/test$ find . что_угодно -print
.
./1.txt
./2.txt
find: ‘что_угодно’: Нет такого файла или каталога
abook:/tmp/test$ find . что_угодно -print 2>/dev/null
.
./1.txt
./2.txt
все неименованные параметры воспринимаются как имена фаилов? (шаблоны поиска) если нет name или iname ?
Использование: find [-H] [-L] [-P] [-Oуровень] [-D debugopts] [путь…] [выражение]
Путём по умолчанию является текущий каталог; выражение по умолчанию: -print.
Выражение может состоять из операторов, параметров, тестов и действий.
Операторы (в нисходящем порядке; -and берётся по умолчанию, если других нет):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2
find test/ *.mp4
- выражение не передано (по умолчанию будет использовано -print), все аргументы восприняты, как путь, где надо искать, кстати wildcard (*.mp4) надо брать в кавычки иначе оболочка выполнит glob и передаст в find список имён фалов, которые подошли под шаблон.Потому что , например , не ожидаешь что удалишь весь домашнии каталог еще до завершения поиска
Как, даже при ошибке в синтаксисе , убрать лишний вывод из консоли ПО _УМОЛЧАНИЮ , оставить только результат поиска.чё-то ржу, вспомнив анекдот:
Основная претензия именно к не очевидному поведению
...
- Ты не поэт, Незнайка!
- Я - не поэт. Я - бард!
Получается да, нуб может расфигачить всё командой для этого не предназначеннойhttps://www.google.com/search?q=хакер+против+дирек...
Дают Терминатору фото , говорят - посмотри, на фото маньяк.Тут проблема в неправельном выборе инструмента для конкретной задачи. Нужно было дать фото маньяка Робокопу - и всё было бы нормально. Вместо этого пригласили Терминатора - боевую машину, а не охранника порядка.
Теперь посмотри на толпу у метро , найди маньяка и убей.
Терминатор достает бфг и фигачит всех в фарш.
А потом говорит - Маньяков не обнаружено.