Выполнение команд над файлами с подтверждением в Bash/Linux: изучено несколько методов

В Bash/Linux выполнение команд над файлами, которые соответствуют определенным критериям, с подтверждением каждого действия может быть полезной задачей. В этой статье представлены несколько методов достижения этой цели и приведены примеры кода.

Метод 1: использование цикла и запроса подтверждения
В этом методе мы будем использовать цикл и запрашивать у пользователя подтверждение перед выполнением команды для каждого файла.

#!/bin/bash
# Specify the command to execute
command_to_execute="echo"
# Specify the file filter criteria (e.g., all text files)
file_filter="*.txt"
# Iterate over files and prompt for confirmation
for file in $file_filter; do
    read -p "Execute command on $file? (Y/N): " choice
    if [[ $choice == [Yy] ]]; then
        $command_to_execute "$file"
    fi
done

Метод 2: использование команды find
Команда find— это мощная утилита, которая может искать файлы и выполнять над ними команды. Мы можем объединить его с опцией -okдля запроса подтверждения.

#!/bin/bash
# Specify the command to execute
command_to_execute="echo"
# Specify the file filter criteria (e.g., all text files)
file_filter="*.txt"
# Execute the command on files with confirmation
find . -name "$file_filter" -ok $command_to_execute {} \;

Метод 3: использование xargsи запроса подтверждения
Команду xargsможно использовать для выполнения команд над файлами, переданными в качестве аргументов. Объединив его с опцией -p, мы можем запросить подтверждение.

#!/bin/bash
# Specify the command to execute
command_to_execute="echo"
# Specify the file filter criteria (e.g., all text files)
file_filter="*.txt"
# Execute the command on files with confirmation
find . -name "$file_filter" -print0 | xargs -0 -p $command_to_execute

Выполнение команд над файлами, отфильтрованными с подтверждением, — обычная задача в Bash/Linux. В этой статье мы рассмотрели три различных метода достижения этой цели. В первом методе использовался цикл и запрос подтверждения, во втором — команда findс опцией -ok, а в третьем — xargsс опцией -ok. Опция -p. Выберите метод, который лучше всего соответствует вашим требованиям, и начните с уверенностью автоматизировать операции с файлами.