Мне нужно найти все файлы, начиная с имени, NAME
в дереве каталогов и удалить все эти файлы с помощью одной команды оболочки.
36
удалить все файлы, имя которых имеет имя --- вы можете использовать
find -name . 'name*' -exec rm {} \;
grep
имеет-exec
переключатель?Удалите все файлы в текущем каталоге и его подкаталогах, где имя файла начинается с «foo»:
NB: используйте с осторожностью - сначала сделайте резервную копию - сначала выполните пробный прогон, например,
просто скажет вам имена файлов, которые будут удалены.
источник
find . -type f -name foo\* -delete
сделал свое делоЯ пробовал таким образом, это работает для меня, попробуйте ниже команды.
здесь «Пример» - это текст, общий для всех файлов.
источник
Вы можете использовать
find
:источник
С
globstar
опцией (включить с помощьюshopt -s globstar
):**/
расширяется до./
,*/
,*/*/
, и*/*/*/
т.д. Если у вас есть каталог имя , начинающееся сNAME
, то команда будет жаловаться , чтоrm
не может удалить каталоги, но это все.Обратите внимание, что это может привести к ограничениям длины командной строки, если глобус совпадает со многими файлами.
В качестве альтернативы, с
rm
минимально возможным количеством вызовов , но без ограничений по длине командной строки:(Обратите внимание,
+
вместо того,\;
чтобы закрыть-exec
утверждение.)источник
find . -name 'foo'* -type f -delete
кажется самым простым ответом.Вы можете запустить это без
-delete
флага, прежде чем посмотреть, какие файлы будут удалены.источник
Найдите номер «Inode» файла / папки, а затем удалите, используя номер Inode. Ниже приведен пример:
источник