Этот сценарий найдет все файлы в целевом каталоге и сгенерирует новый сценарий, который переименует все файлы, чтобы в них не было пробелов. Затем вы можете просмотреть сценарий на досуге перед выполнением:
#!/bin/bash
TARGET=/path/to/files
NEWSCRIPT=${HOME}/rename-spaced-files.sh
OLDIFS="${IFS}"
IFS="\n"
for file in $(find ${TARGET}/ -type f -name "* *"); do
if [[ -f \"${file// /}\" ]]; then
echo "# \"${file// /}\" already exists- come up with a new name for it and uncomment the next line" >> $NEWSCRIPT
echo -n "# " >> $NEWSCRIPT
fi
echo "mv \"${file}\" \"${file// /}\"" >> $NEWSCRIPT
done
Предположим, что вы используете дистрибутив, отличный от NixOS, тогда да, вы можете ожидать, что ваше окружение рабочего стола будет искать ваши приложения в /usr/share/applications
, в то время как приложения, установленные в Nix, находятся в ~/.nix-profile/share/applications
.
Вместо создания симлинка из /usr/share/applications
вы должны указать своему рабочему столу, где искать. Это можно сделать, добавив следующее в ~/.profile
:
export XDG_DATA_DIRS=$HOME/.nix-profile/share:$HOME/.share:"${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}"
Таким образом, ваш рабочий стол будет искать приложения как в /usr/share/applications
, так и в ~/.nix-profile/share/applications
, с приоритетом приложений, установленных с Nix.
For more info, https://nixos.org/wiki/KDE#Using_KDE_outside_NixOS
После изменения $ XDG_DATA_DIRS
в .profile
мне не удалось войти в систему с Ubuntu Gnome 16.10.
Вместо этого я решил это с помощью символических ссылок. Приведенная ниже команда находит все ссылки в .nix-profile / share / applications
и связывает их с .local / share / applications
. Замените teodorlu
своим именем пользователя.
find ~/nix-profile/share/applications -type l -exec ln -s /home/teodorlu/{} ~/.local/share/applications \;