Сравнение времен файла в ksh

(Это - просто ответ на ответ @gilles, поскольку это является слишком большим для комментария),

Поскольку Gilles уже указал, что можно создать функцию, которые автоматически выполняют необходимую функцию. Но вместо того, чтобы использовать некоторое случайное имя Вы могли также просто переопределить cd:

Для zsh:

cd() {
    if (( ${#argv} == 1 )) && [[ -f ${1} ]]; then
        builtin cd ${1:h}
    else
        builtin cd "$@"
    fi
}

Для удара:

cd() {
    if [ $# == 1 ] && [[ -f ${1} ]]; then
        builtin cd "$(dirname ${1})"
    else
        builtin cd "$@"
    fi
}

Это позволит Вам делать что-то как cd /path/to/file и это автоматически изменится в каталог определенного файла. Конечно, можно использовать версию удара также с zsh.

1
25.05.2013, 02:28
1 ответ

Ksh имеет оператор для сравнения дат двух файлов (это также доступно в пепле, ударе и zsh, но это не находится в POSIX). Вы не должны звонить ls или stat или что-либо для чтения дат: позвольте оболочке сравнить их.

for f in *.xml; do
  if [[ $f -nt default.txt ]]; then …
done
3
27.01.2020, 23:29

Теги

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