В 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. Выберите метод, который лучше всего соответствует вашим требованиям, и начните с уверенностью автоматизировать операции с файлами.