Как переместить содержимое папки в текущую папку?

Вы можете использовать журнал активности для отслеживания открытых файлов. Не уверен, что существует что-то для отслеживания открытых приложений.

Это, вероятно, хитроумное и трудоемкое решение, но вы можете использовать значки на рабочем столе для запуска приложений с помощью скриптов. В сценарии вы можете добавить строку в файл журнала.

Что-то вроде ...

#!/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
5
05.07.2018, 13:33
3 ответа

Просто используйте команду перемещения:

cd foo
mv bar/*.

Как предлагает Джефф Шаллер, используйте

 shopt -s dotglob 

перед командой mv для перемещения скрытых файлов и используйте опцию -imv, если вы хотите интерактивную проверку перед перезаписью

-2
27.01.2020, 20:36

Если у вас есть каталог foo, который содержит только каталог bar.(barможет содержать другие элементы ).

И вы хотите переименовать foo/barfoo, тогда сделайте:

mv -T foo foo.original
mv -T foo.original/bar foo
rmdir foo.original

Вы можете выйти из -T, если ваш mvне имеет этой опции, однако это делает его более безопасным.

0
27.01.2020, 20:36

Проблема под рукой

Вы хотите переместить содержимое foo/bar/вверх на уровень foo/.

Я буду ссылаться на этот пост о суперпользователе , а также на этот пост из serverfault в решении.

Решение

По словам пользователя Stephan202 , вам нужны следующие команды для выполнения этой задачи:

cd /path/to/foo/bar
mv *.[^.]*..

Также должна быть возможность изнутри foo/bar/запустить следующую команду:

(shopt -s dotglob; mv -- *..)

Убедитесь, что у вас есть правильные разрешения. При необходимости запустите команду с привилегиями root (sudo ).

Заключение

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

Удачи!

2
27.01.2020, 20:36

Теги

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