Вы можете использовать журнал активности для отслеживания открытых файлов. Не уверен, что существует что-то для отслеживания открытых приложений.
Это, вероятно, хитроумное и трудоемкое решение, но вы можете использовать значки на рабочем столе для запуска приложений с помощью скриптов. В сценарии вы можете добавить строку в файл журнала.
Что-то вроде ...
#!/bin/sh
echo `date` "Firefox Started" >> /home/username/logs/apps-activity.log
firefox
echo `date` "Firefox Stopped" >> /home/username/logs/apps-activity.log
Извините, мои навыки bash все еще довольно рудиментарны, но я думаю, вы уловили идею. Это не очень хорошее решение, но, возможно, оно даст вам некоторые идеи. Что касается использования ps, в каждом приложении может быть задействовано довольно много процессов, поэтому я думаю, что было бы довольно сложно заставить это работать должным образом.
Если мы воспользуемся примером firefox, при использовании команды ps у меня будут запущены 2 процесса. Например.
$ ps aux | grep firefo[x]
username 5302 11.2 3.5 1391936 564016 ? Sl Jul08 553:26 /usr/bin/firefox.real
username 15351 0.8 0.2 482268 47040 ? Sl Jul09 29:21 /opt/firefox/plugin-container /usr/lib/flashplugin-nonfree/libflashplayer.so -greomni /opt/firefox/omni.ja -appomni /opt/firefox/browser/omni.ja -appdir /opt/firefox/browser 5302 true plugin
Просто используйте команду перемещения:
cd foo
mv bar/*.
Как предлагает Джефф Шаллер, используйте
shopt -s dotglob
перед командой mv для перемещения скрытых файлов и используйте опцию -i
mv, если вы хотите интерактивную проверку перед перезаписью
Если у вас есть каталог foo
, который содержит только каталог bar
.(bar
может содержать другие элементы ).
И вы хотите переименовать foo/bar
→ foo
, тогда сделайте:
mv -T foo foo.original
mv -T foo.original/bar foo
rmdir foo.original
Вы можете выйти из -T
, если ваш mv
не имеет этой опции, однако это делает его более безопасным.
Вы хотите переместить содержимое foo/bar/
вверх на уровень foo/
.
Я буду ссылаться на этот пост о суперпользователе , а также на этот пост из serverfault в решении.
По словам пользователя Stephan202 , вам нужны следующие команды для выполнения этой задачи:
cd /path/to/foo/bar
mv *.[^.]*..
Также должна быть возможность изнутри foo/bar/
запустить следующую команду:
(shopt -s dotglob; mv -- *..)
Убедитесь, что у вас есть правильные разрешения. При необходимости запустите команду с привилегиями root (sudo ).
Пожалуйста, прокомментируйте, если у вас есть какие-либо вопросы или проблемы с этим ответом. Я настоятельно рекомендую вам внимательно прочитать каждую ссылку, которую я предоставил, прежде чем пытаться использовать команды. Я ценю обратную связь, чтобы исправить любые неправильные представления и улучшить мои сообщения. Я могу обновить свой ответ по мере необходимости.
Удачи!