#bash #rm
#bash #rm
Вопрос:
Я немного застрял в скрипте, который используется для поиска и удаления определенных файлов. Я хочу предоставить пользователю возможность перебирать список и удалять каждый файл только после одобрения человеком.
Тем не менее, я нахожу скрипт, который пропускает взаимодействие с пользователем и не удаляет.
cat $fileToBeDeleted | while read in; do
rm -i "$in"
echo "deleted: $in"
done;
Ответ №1:
Вместо использования rm -i
вы можете использовать оператор if, чтобы запросить подтверждение перед удалением файла. В этом примере я использовал текстовый файл (to_delete_list.txt ), который содержит список файлов, которые я буду удалять.
read -u 1 answer
позволит вам запрашивать ввод данных пользователем в цикле.
#!/bin/bash
while IFS= read -r file; do
echo "do you want to delete $file (y/n)?"
read -u 1 answer
if [[ $answer = y ]]
then
rm $file
echo "deleted: $file"
else
continue
fi
done < "to_delete_list.txt"
Комментарии:
1. На самом деле это не решает, как обращаться с rm -i в скрипте, но ваше предложение фактически решает мою проблему. Спасибо!