«Открыть содержащую папку» без использования файлового менеджера [дубликат]

Я нашел способ. Я взял его с какого-то сайта stackexchange, но не могу найти его обратно.

В любом случае: Вы можете злоупотреблять опцией bash --init-file. Она предназначена для отмены использования другого стартового скрипта вместо .bashrc, но вы можете поместить туда что угодно. В сочетании с анонимными трубами вы можете сделать примерно следующее:

bash --init-file <(echo "your --command --here")

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

Конечно, при этом будет пропущен .bashrc, потому что именно для этого предназначен --init-file. Чтобы исправить это, вы получите потрясающе красивый

bash --init-file <(echo ". \"$HOME/.bashrc\"; your --command --here")

Уродливый, но он работает :-)

О подсистеме Windows для Linux

Наконец, я попробовал сделать это из Windows, но попал в беду, потому что когда вы запускаете bash, чтобы вызвать подсистему Windows для Linux, вы все еще находитесь в стране Windows, поэтому анонимные трубы не будут работать, $HOME будет неправильным, и так далее. Моим обходным решением для "cmd /k, но для запуска подсистемы windows для linux" стало:

bash -c 'exec bash --init-file ^<(echo ". \"$HOME/.bashrc\"; your --command --here")'

Обратите внимание на ^, чтобы убрать символ <. Это запустит bash (bash -c), немедленно заменит текущий процесс bash на новый (exec), который также является процессом bash, теперь инициализированным, как обсуждалось ранее, из "Linux land".

Я сделал пакетный файл под названием bash-k.cmd в моем PATH, чтобы я мог легко вызвать его, с этим внутри:

@bash -c 'exec bash --init-file ^<(echo ". \"$HOME/.bashrc\"; %*")'

Это позволяет мне сделать bash-k cowsay hello и все будет работать

1
12.01.2017, 01:05
1 ответ

Это происходило со мной даже в других программах, таких как uGet, загрузчик, который также имеет параметр "открыть содержащий папка".

Проблема, как указано здесь , запускается определенными программами.

Лучшее решение - создать или отредактировать ~ / .local / share / applications / mimeapps.list : отредактируйте строку, которая начинается с inode / directory = , и добавьте имя используемого файлового менеджера, если его еще нет; если это уже есть, но другая программа указана там первой, сначала поместите файловый менеджер (если вам нужны другие программы для открытия папок).

Для файлов Pantheon это должно быть похоже на

[Default Applications]
inode/directory=org.pantheon.files.desktop; 

. Если среда рабочего стола несовместима с freedesktop, как мой Manjaro Cinnamon, создаваемый / редактируемый файл должен быть ~ / .local / share / applications / mimeinfo. cache вот так:

[MIME Cache]
inode/directory=org.pantheon.files.desktop; 

Вы должны публиковать вопросы по elementaryOS на собственном сайте stackexchange: https://elementaryos.stackexchange.com/

3
27.01.2020, 23:47

Теги

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