Запуск `ls` с` --color = auto | always` требует разрешений на выполнение

xdotool должен знать идентификатор окна для всех своих действий. Вы правильно использовали getactivewindow для получения окна для команды windowminimize, но вам также нужно сделать это для установки его имени. Поэтому поместите

xdotool getactivewindow set_window --name speedy

перед строкой минимизации.

Затем вы можете использовать поиск, чтобы найти его для последующей активации.

xdotool search --name speedy windowactivate

Смотрите разделы man-страницы Window stack и Command chaining для объяснения того, как все это работает.

Весь скрипт:

#!/bin/bash
# rename the window for finding it again later
xdotool getactivewindow set_window --name speedy
xdotool search --name speedy windowminimize

speedtest-cli --simple

if [ $? -eq 0 ]
then
  xdotool search --name speedy windowactivate
  xdotool key "F11"
fi

0
12.08.2016, 00:15
2 ответа

Для просмотра содержимого каталога (имена записей) требуется только разрешение на чтение в каталоге.

Это означает, что вы можете запустить / bin / ls и без проблем просмотреть все имена.

Но чтобы решить, каким цветом должны отображаться имена, ls использует другие свойства из записей. Он использует метаданные из файла (разрешения, размер, тип файла и т. Д.). Для этого требуется, чтобы он stat () файл, а для успешного выполнения этого требуется разрешение на выполнение в каталоге.

Только имена файлов в каталоге: вам нужно только разрешение на чтение. Для метаданных о файлах в каталоге: вам нужно разрешение на чтение и выполнение

4
28.01.2020, 02:15

Чтобы просто перечислить имена вещей в каталоге, не заботясь об их типах (и т. Д.), Просто требуется разрешение на чтение в каталоге.

Чтобы назначить цвет объектам внутри каталога, ls необходимо знать о них информацию - тип записи (другой каталог, простой файл, устройство, символическая ссылка и т. Д.), Размер, цель символической ссылки; он находит их с помощью различных системных вызовов в записи. Для этого требуется бит разрешения + x в каталоге, содержащем эти элементы. (На самом деле, в зависимости от версии ядра, вы все равно можете получить какой-то цвет - getdent может указывать как имя, так и тип).

Моя версия ls , кстати, по-прежнему отображает каталог после выдачи ошибок отказа в разрешении (хотя и всех цветов). А если вы хотите увидеть что-то еще странное, попробуйте -l :

$ ls -l test 2>/dev/null 
total 0
l????????? ? ? ? ?            ? badsymlink
-????????? ? ? ? ?            ? empty
p????????? ? ? ? ?            ? fifo
l????????? ? ? ? ?            ? goodsymlink
-????????? ? ? ? ?            ? notempty
2
28.01.2020, 02:15

Теги

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