Мне нужно найти все файлы, начинающиеся с именем NAME в дереве каталогов и удалите все эти файлы с помощью одной команды оболочки.
Как удалить все файлы, начинающиеся с определенной строки в Linux

7 ответов
чтобы удалить все файлы, имя которых имеет имя - - - вы можете использовать
find -name . 'name*' -exec rm {} \;

удалить все файлы в текущем каталоге и его подкаталогах, где имя файла начинается с "foo":
$ find . -type f -name foo\* -exec rm {} \;
NB: используйте с осторожностью-сначала резервное копирование - также сначала выполните сухой прогон, например
$ find . -type f -name foo\*
просто скажет вам имена файлов, которые будут удалены.

Я пробовал таким образом, он работает для меня попробовать ниже команды.
rm -rf Example*
здесь "пример" - текст, общий для всех файлов.

можно использовать find:
find . -name "name*" -exec rm {} \;

С globstar опции (включить с shopt -s globstar):
rm -f **/NAME*
**/ увеличивается до ./,*/,*/*/,*/*/*/ etc. Если у вас есть каталог имя, начиная с NAME команда будет жаловаться на то, что rm не могу удалить каталоги, но это все.
обратите внимание, что это может столкнуться с ограничениями длины командной строки, если glob соответствует многим файлам.

find . -name 'foo'* -type f -delete кажется самым простым ответом.
вы можете запустить это без -delete флаг перед тем, чтобы увидеть, какие файлы будут удалены.

Поиск" Inode " номер файла / папки, а затем удалить с помощью номера inode. Ниже приведен пример:
ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p
find . -inum 3407873 -exec rm -rf {} \;

Komp




















