Как удалить все файлы, начинающиеся с определенной строки в Linux

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

5
задан slhck
источник

7 ответов

чтобы удалить все файлы, имя которых имеет имя - - - вы можете использовать

find -name . 'name*' -exec rm {} \;
-1
отвечен Community 2012-10-10 12:14:23
источник

удалить все файлы в текущем каталоге и его подкаталогах, где имя файла начинается с "foo":

$ find . -type f -name foo\* -exec rm {} \;

NB: используйте с осторожностью-сначала резервное копирование - также сначала выполните сухой прогон, например

$ find . -type f -name foo\*

просто скажет вам имена файлов, которые будут удалены.

58
отвечен Paul R 2012-10-02 12:19:23
источник

Я пробовал таким образом, он работает для меня попробовать ниже команды.

rm -rf Example*

здесь "пример" - текст, общий для всех файлов.

13
отвечен Dinesh Bhojvani 2016-07-28 10:51:24
источник

можно использовать find:

find . -name "name*" -exec rm {} \;
10
отвечен P.P. 2012-10-02 12:22:38
источник

С globstar опции (включить с shopt -s globstar):

rm -f **/NAME*

**/ увеличивается до ./,*/,*/*/,*/*/*/ etc. Если у вас есть каталог имя, начиная с NAME команда будет жаловаться на то, что rm не могу удалить каталоги, но это все.

обратите внимание, что это может столкнуться с ограничениями длины командной строки, если glob соответствует многим файлам.

2
отвечен Benjamin W. 2018-07-06 03:44:33
источник

find . -name 'foo'* -type f -delete кажется самым простым ответом.

вы можете запустить это без -delete флаг перед тем, чтобы увидеть, какие файлы будут удалены.

1
отвечен Yehuda Schwartz 2018-08-27 16:28:09
источник

Поиск" Inode " номер файла / папки, а затем удалить с помощью номера inode. Ниже приведен пример:

ls -il
3407873 drwxr-xr-x. 2 root   root      4096 Mar 30 07:49 –p

find . -inum 3407873 -exec rm -rf {} \;
-1
отвечен Diwa 2015-03-30 06:12:58
источник

Другие вопросы bash linux