w
отображает информацию, хранящуюся в utmp
(/var/run/utmp
, как правило, в системах Linux ). Обычно это обновляется только сеансами «входа», , т.е.login
(для входа на виртуальные консоли или последовательные соединения ), диспетчером дисплея (для графических сеансов ), сервером SSH (для входа в систему. SSH-подключения )и некоторые (большинство? )эмуляторы терминала. В последнем случае то, обновят ли они utmp
, зависит от их встроенной -поддержки и конфигурации; например xterm
имеет флаг ut
для этого(-ut
отключает utmp
обновления, +ut
включает их ), а терминал GNOME больше не обновляет utmp
напрямую вообще .
Итак, вы видите записи, которые были добавлены в utmp
в вашем случае :одна добавлена вашим менеджером отображения (в tty7
), а другие добавлены некоторыми эмуляторами терминала, которые вы используете. с использованием.
Должна быть возможность оборачивать команды для добавления utmp
протоколирования к чему угодно, используя, например, libutempter
, но, по-видимому, это не так просто, как можно было бы надеяться .
Возможны два сценария.
(1 )Предположим, у вас есть:
├── bar
│ └── aaa.txt
└── foo
и вы сейчас находитесь в каталоге bar
, если бы вы хотели переместить aaa.txt
в каталог ../foo
, но набрали mv aaa.txt foo
, то вы бы переименовали aaa.txt
в foo
внутриbar
:
├── bar
│ └── foo <- this is your file now
└── foo
(2 )Предположим, что у вас есть
├── bar
│ ├── aaa.txt
│ └── foo
└── foo
В этом случае у вас есть два каталога с именем foo
, один внутри bar
, а другой в том же каталоге, что и foo
. Если вы набрали mv aaa.txt
из bar
, то это переместит aaa.txt
в каталог с именем foo
в текущем каталоге :
├── bar
│ └── foo
│ └── aaa.txt <- this is your file now
└── foo