Как открыть последний файл из списка файлов в определенном каталоге в AIX

Хорошо, мы нашли способ через gsettings:

$ gsettings set org.gnome.desktop.wm.preferences workspace-names "['Com', 'Vienna', 'Test1', 'Test2','Test3']"
$ gsettings set org.gnome.desktop.wm.preferences num-workspaces "5"
1
26.06.2018, 13:07
3 ответа

Если ваша оболочка похожа на оболочку Bourne -и ее [встроенная функция реализует -ntтест для проверки того, является ли один файл новее другого, вы можете использовать

newest=
for file in./*./.*; do
    if [ -f "$file" ]; then
        if [ -z "$newest" ] || [ "$file" -nt "$newest" ]; then
            newest=$file
        fi
    fi
done

if [ -f "$newest" ]; then
    printf 'The latest file is "%s"\n' "$newest"
else
    echo 'Could not find files here' >&2
    exit 1
fi

Это будет перебирать все обычные (и символические ссылки на обычные )файлы (, включая скрытые )файлы в текущем каталоге, а затем сообщать вам, какой файл оказался самым новым. Вы должны заменить оператор printfфактической командой, которую вы хотите запустить на "$newest".

В качестве функции оболочки, которая дополнительно принимает в качестве аргумента список файлов:

newest () (
    newest=
    for file do
        if [ -f "$file" ]; then
            if [ -z "$newest" ] || [ "$file" -nt "$newest" ]; then
                newest=$file
            fi
        fi
    done

    if [ -f "$newest" ]; then
        printf '%s\n' "$newest"
    else
        echo 'No files found' >&2
        return 1
    fi
)

Тогда

tail -f "$(newest./filename*)"
2
27.01.2020, 23:23

Вы можете использовать GNU find, чтобы напечатать все файлы со временем их последнего изменения, sortих в обратном порядке, получить последний измененный файл(head -n 1-верхнюю запись ), а затем сделать хвост последней измененный файл

  find <Directory-name> -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -n 1 | awk  '{print $3}' | xargs tail -f
0
27.01.2020, 23:23

Если zshустановлен, вы можете сделать в нем:

tail -f filenameCtrl+xm

Ctrl+xm — это средство завершения, которое расширяется до последнего файла (в соответствии с последней модификацией временем ).

В сценарии:

#! /usr/bin/env zsh
tail -f filename*(om[1])

Где omсортирует по времени модификации, (самый последний первый ), а [1]выбирает первый.

1
27.01.2020, 23:23

Теги

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