Bash: сортировка элементов массива по дате файла

У меня есть Bash-скрипт с массивом myarray.

Этот массив содержит полные пути расположения файлов для 4 файлов.

То, что я пытаюсь сделать, это отсортировать элементы массива по дате создания файла.

Так что, как быстрый пример, если у меня есть следующие 4 файла в массиве:

/tmp/file1.txt (in index 0) /tmp/test/file1.txt (in index 1) /tmp/test1/file1.txt (in index 2) /tmp/test2/file1.txt (in index 3) 

… и файл в индексе 2 имеет более новую дату создания, а затем остальные, он должен быть отсортирован по индексу 1 и так далее.

Первоначально я думал, что это сделает следующее:

 myarray=($(for each in ${myarray[@]}; do echo $each; done | sort -n)) 

Но если я посмотрю на содержимое массива, я не вижу новый файл в индексе 0.

Кто-нибудь знает, как это сделать в bash?

One Solution collect form web for “Bash: сортировка элементов массива по дате файла”

Следующие типы файлов по дате изменения, так как дата создания не поддерживается в системе, в которой я тестировал скрипт. Замена %Y %W должна выводить время создания, если поддерживается.

 #! /bin/bash files=(*.txt) while IFS= read -r line ; do sorted+=("$line") done < <( for f in "${files[@]}" ; do echo $(stat -c %Y -- "$f")$'\t'"$f" done | sort -nk1,1 | cut -t $'\t' -f2- ) echo "${sorted[@]}" 

Он работает для файлов с пробелами в их именах. Имена файлов, содержащие новые строки, могут сломать его, но вы не используете символы новой строки в именах файлов, верно?

  • Получить последний каталог (не последний файл)
  • Как я могу увидеть историческое время изменения файла?
  • Извлечь дату создания и время изменения файла в Sunos
  • Проверка отметки времени Unix с использованием BASH
  • получить исходную дату создания html-файла
  • Почему прикосновение может меняться только все время, или ничего, если не владелец
  • Универсальная альтернативная альтернатива non-bash `time`?
  • Добавление метки времени в файл журнала с помощью команды cronjob
  • Как найти дату создания файла?
  • Извлечь временную метку из файла gzip
  • ls показывает временную метку без времени для файла на NFS
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.