Получите дату модификации, которая может использоваться с касанием-m

pgrep -x chromium не соответствовал бы именам процесса как chromium-foo, и > /dev/null мог быть заменен -q:

pgrep -xq chromium; echo $(($? == 0))

pgrep не определяется POSIX, и например он не был включен с OS X до недавнего времени. Но Вы могли также использовать ps:

ps -eo comm= | grep -xq chromium; echo $(($? == 0)) # GNU
ps -eco comm= | grep -xq chromium; echo $(($? == 0)) # OS X
ps -eo comm= | sed 's|.*/||' | grep -xq chromium; echo $(($? == 0)) # either

В OS X -o comm печатает полные пути команд и -co comm базовые имена печати. В GNU -o comm базовые имена печати и -c не определяется.

4
22.01.2015, 01:15
3 ответа

Вы можете преобразовать время, возвращаемое STAT или PERL в формате, который вы хотите с командой Дата (при условии, что у вас установлен GNU COREETILS):

# Convert UNIX time returned by perl to year+month+day
$ date -d @$(perl -le 'print((stat shift)[9])' FILENAME) +%Y%m%d
20130703

# Convert formatted time returned by GNU stat to year+month+day
$ date -d "$(stat -c %y FILENAME)" +%Y%m%d
20130703

Дата Сама также может дать вам время модификации для файлов непосредственно:

$ date -r FILENAME +%Y%m%d
20130703

для получения подробной информации см. На странице на странице GNU ( Дата человека ).

4
27.01.2020, 20:52

Я размещаю ответ, так как у меня есть несколько удалось разрешить проблему. Я говорю несколько , потому что у меня все еще есть проблемы.

Оригинация, кажется, нужно использовать заставку. Я отключил все варианты, которые я мог найти, даже исправленную Xscreensaver, но безрезультатно. Вышеуказанные исправления я пытался в моем вопросе, иногда генерируют вопросы, когда я вхожу в систему, иногда они не делают!

Что, однако, решило, что проблема - это две вещи:

  1. Я перестал использовать VLC. Я люблю это, использовал его много лет, но это виновник, который порождает эти сеансы XCrensaver. Сейчас я использую Dragon-Player, и я могу смотреть видео без приступления XSCreenSaver.

  2. Я принудил KDE использовать заставку, которую я выбрал. Похоже, что это переопределяют XSCreenSaver по умолчанию .

Иногда Экран проходит пустым самостоятельно, не отображая заставку, которую я выбрал. Это не мои мониторы (я использую двойную настройку, чтобы быть странным как для отключения). Похоже, что это случайно, как иногда экран остается в течение нескольких часов без подачи.

Я даже попытался исправить XscreenSaver, но ничего не работал. Я надеюсь, что это зафиксировано в следующем стабильном Debian.

-121--33241-

Версия является частью имени пакета в этом случае ( BLAH-BLAH-1,49 против BLAH-BLAH ). Поэтому пакет рассматривается как другой.

-121--205449-

Делать «LS -otr -Time-Time-Style = +% y% m% d% h% M.% s» получит дату в правильном формате, хотя с кучей Другая информация, которая легко отредактирована.

Это удобно при назначении псевдонима и вывод перенаправлен в файл.

0
27.01.2020, 20:52
stat -f %m -t %Y%m%d%H%M.%S myfile

Это распечатает временную метку в формате, требуемом для touch -t.

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

timestamp=$(TZ=UTC stat -f %m -t %Y%m%d%H%M.%S myfile)
…
TZ=UTC touch -t "$timestamp" myotherfile

Обратите внимание, что это относится к утилите BSD stat, например, поставляемой вместе с OSX, а не к утилитам GNU или BusyBox stat, как, например, в Linux.

2
27.01.2020, 20:52

Теги

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