2012-03-02 4 views
0

Я пытаюсь написать сценарий bourne-shell, который берет строку в качестве параметра и удаляет все файлы в каталоге, содержащем эту строку Я думал об использовании find и execute rm, но я просто начал б-оболочкиbourne-shell find-remove

find . -name $1 'core' -exec rm -i* {}\;

любая помощь будет оценена. Благодарю.

+0

Вы имеете в виду, что имя файла должно содержать строку или содержимое файла должно содержать строку? – Mithrandir

+0

@ Mithrandir имя файла извините – Glove

ответ

0

remove.sh сценарий:

#!/bin/sh 
find . -type f -iname *$1* -exec rm -rf {} \; 

использование:

$remove.sh "main" 
+0

Он фактически удаляет только файл со строкой, в которой он не удаляет остальные файлы – Glove

1

Почему не только это:

#!/bin/sh 
rm *$1* 

Удаляет файлы в текущем каталоге, которые содержат свой аргумент.

0
find . -type f -name "$1" -delete 

Это будет использоваться во всех подкаталогах. Если вы этого не хотите, используйте rm или -maxdepth 1.