Как мне изменить метод сортировки файлов, используемый звездочкой (*) в bash?

Вам необходимо использовать iotop , чтобы определить, какая программа с большим объемом операций ввода-вывода первой.

и используйте Некоторые инструменты для мониторинга MySQL.

1
07.05.2018, 23:05
2 ответа

ls -trотсортирует файлы в текущем каталоге по самому раннему времени модификации.

0
27.01.2020, 23:32

При использовании инструментов GNU вам придется сделать что-то вроде

find. -maxdepth 1 -name '*ASD*' -printf '%T@\t%p\0' | 
  sort -z -k1.1n |
  while IFS=$'\t' read -rd '' mtime name; do
    # do something with the filename
    echo ">>>$name"
  done

Дополнительные обручи предназначены для обработки любых мыслимых имен файлов, например, содержащих символы новой строки.

Чтобы заключить это в функцию, я бы написал:

files_by_mtime () { 
    local pattern=$1
    local -n arr=$2
    arr=()
    while IFS=$'\t' read -rd '' mtime name; do
        arr+=("$name")
    done < <(
        find. -maxdepth 1 -name "$pattern" -printf '%T@\t%p\0' | sort -z -k1.1n
    )
}

files_by_mtime '*' myarr
for file in "${myarr[@]}"; do
    # do something with the filename
    echo ">>>$file"
done

Требуется bash версии 4.3+

2
27.01.2020, 23:32

Теги

Похожие вопросы