Я предполагаю, что вы уже запустили mkdir ~/Desktop
для создания фактической папки на рабочем столе.
Поскольку вы не указали, какая часть функциональности вашего рабочего стола теперь несколько нарушена , я думаю, что когда вы попытались запустить без действительной папки на рабочем столе, вместо этого ваша система приняла новое значение по умолчанию (вероятно~
).
Согласно этому старому сообщению(и многим другим ), этого должно быть достаточно, чтобы убедиться, что где-то в вашем ~/.config/user-dirs.dirs
есть эта строка:
XDG_DESKTOP_DIR="$HOME/Desktop"
(Возможно, вам придется выйти из системы и снова войти/перезагрузиться, чтобы это вступило в силу.)
Как и во всем мире *NIX, существует несколько подходов к этому, которые будут/должны работать.
Одним из них является создание ~/Desktop
символической ссылки, указывающей на рабочий стол Windows. Однако, поскольку это не сработало для вас, я предполагаю, что любая программа проверки работоспособности -, которая гарантирует, что ваш рабочий стол существует, запускается до монтирования раздела Windows и, таким образом, «исправляет» путь. Так что отбросьте эту идею.
Другой подход, который теоретически должен работать, заключается в том, чтобы просто настроить вышеприведенную строку конфигурации так, чтобы она указывала непосредственно на папку на рабочем столе Windows. Однако это, скорее всего, не удастся по той же причине, что и первый подход.
Что должно работать, независимо от работоспособности, -проверка перед -mount -a
, однако простое использование mount --bind
для монтирования рабочего стола Windows поверх рабочего стола Lubuntu -с дополнительным преимуществом, что он продолжает работать, если раздел Windows всегда отсутствует или поврежден, различаясь только содержанием:
mount --bind /path/to/windows/desktop $HOME/Desktop
В fstab
это будет выглядеть так:
/path/to/windows/desktop /home/username/Desktop none bind
Если вы убедитесь, что это запускается после того, как раздел Windows уже смонтирован (, вероятно, поместив эту строку ниже в fstab
),это должно прозрачно предоставить ваш рабочий стол Windows в Lubuntu, не вмешиваясь в базовую структуру папок.
Выполнить так:
/bin/bash commands
Передача файла по конвейеру на bash
заставляет файл перемещаться через стандартный ввод из bash
. В таком случае read
при чтении со стандартного ввода считывается из конвейерного потока, а не из терминала. Он потребляет echo 'ok'
. Указав файл в качестве аргумента для bash
, вы все равно выполняете его, хотя на этот раз стандартный ввод не перенаправляется.
Я предполагаю, что вы хотите выполнить это так. Сравните В чем разница между запуском bash script.sh
и ./script.sh
?