Мне нужно найти все файлы, начинающиеся с именем 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 {} \;
