Переменная в команде find задана новой переменной в bash

Можно ли сделать что-то вроде этого:

inputNum="$1" files=($(find /dir/to/check -mtime $inputNum)) 

В принципе, идея состоит в том, что я могу использовать входной параметр, чтобы установить количество дней для поиска файлов и установить его в массив переменных. Я не уверен в синтаксисе, чтобы сделать это доступным для чтения в bash.

2 Solutions collect form web for “Переменная в команде find задана новой переменной в bash”

Результат find не -print0 надежно, если вы не используете -print0 вместо -print ( -print подразумевается, когда не указано действие).

Чтобы find -print0 пост-обработку вывода find -print0 и сохранить пути к файлу в массиве:

С bash4.4 +:

 readarray -td '' files < <(find /dir/to/check -mtime "$inputNum" -print0) 

Со старыми версиями:

 files=() while IFS= read -rd '' file; do files=("${files[@]}" "$file") done < <(find /dir/to/check -mtime "$inputNum" -print0) 

В более общем плане вы хотели бы прочитать рекомендации по: Почему циклическая обработка результатов поиска неэффективна?

Если вы можете использовать zsh вместо bash, то это намного проще. Zsh может сопоставлять файлы на основе их атрибутов с помощью квалификаторов glob .

 files=(/dir/to/check/**/*(Dm$inputNum)) 

**/* рекурсивно ищет подкаталоги. Скобки после * содержат glob-классификаторы: D для включения точечных файлов и m для сопоставления файлов в зависимости от времени их модификации в днях, таких как find -mtime (вы также можете выбрать другой блок и сделать ограничение времени, например (Dmm-$min) действует как find -mmin -$min ).

Zsh предварительно установлен на macOS. В большинстве других систем Unix (в частности, в большинстве дистрибутивов Linux) он доступен как пакет, но не установлен по умолчанию.

  • Объем переменных при вызове функции из find
  • В сценарии bash, что отличается между объявлением и нормальной переменной?
  • Установка переменной, значение которой зависит от другой переменной
  • Как выбрать количество цифр в переменной в моих сценариях?
  • Использование sed в сценарии оболочки с многострочными переменными
  • Как использовать глобальные переменные массивы в псевдонимах или функциях
  • Объединение нескольких выходов grep в переменную
  • Несколько входов в одной команде
  • отображение PID
  • Как вы обрабатываете несколько правил валидации при различных пользовательских вводах?
  • Попытка присвоения не переменной?
  • Linux и Unix - лучшая ОС в мире.