2012-10-02 12:18:00 +0000 2012-10-02 12:18:00 +0000
39
39

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

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

Ответы (7)

68
68
68
2012-10-02 12:19:23 +0000

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

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

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

$ find . -type f -name foo\*

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

29
29
29
2016-07-28 10:51:24 +0000

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

rm -rf Example*

здесь “Пример” - это текст, который является общим для всех файлов.

11
11
11
2012-10-02 12:22:38 +0000

Вы можете использовать find:

find . -name "name*" -exec rm {} \;
3
3
3
2017-02-24 03:17:48 +0000

С помощью опции globstar (включено с shopt -s globstar):

rm -f **/NAME*

**/ расширяется до ./, */, */*/, */*/*/, NAME и т.д.. Если у вас есть имя директории, начинающееся с rm, команда пожалуется, что rm не может удалить директории, но это все.

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

Альтернативно, с как можно меньшим количеством вызовов +, но без каких-либо ограничений длины командной строки:

find . -type f -name 'NAME*' -exec rm -f {} +

(Заметьте \; вместо -exec, чтобы закрыть утверждение 0x6&).

3
3
3
2012-10-02 12:48:10 +0000

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

find . -name 'name*' -exec rm {} \;
2
2
2
2018-08-27 16:28:09 +0000

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

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

-1
-1
-1
2015-03-30 06:04:34 +0000

Найдите номер “Inode” файла/папки, а затем удалите, используя номер “inode”. Ниже приведен пример:

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

find . -inum 3407873 -exec rm -rf {} \;

Похожие вопросы

6
10
11
5
11