См. http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html или man zshmisc
%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
Чтобы получить что-то похожее на PROMPT_DIRTRIM = 3
, вы можете использовать % 3d
или % 3 ~
, например
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
Итак, как решение;
Предыстория :Я использую Arch Linux. Он использует mkinitcpio для генерации своих initramfs (и раннего пользовательского пространства (! )). Поскольку мы загружаем образ файловой системы из NTFS, нам нужно настроить initramfs. Мы можем использовать GRUB и его модуль ntfs для чтения (NTFS-модуль GRUB является ro afaik. )ядро и initramfs из раздела NTFS. После этого нам все еще нужно смонтировать раздел NTFS из initramfs для полного доступа для чтения/записи.
Теория работы решения :Я добавил пакеты ntfs -3g и fusefs в initramfs, чтобы можно было смонтировать раздел NTFS. Я также создал новый хук mkinitcpio , который нужно загрузить перед фактическим монтажным хуком. Хук представляет собой простой сценарий оболочки, который получает параметры (, которые задаются как аргументы ядра из GRUB ), например
.menuentry "Boot LINUX FROM ISO FILE" {
insmod ntfs
set root='(hdX,Y)'
linux /in_ntfs/vmlinuz-linux root=UUID=*GPT_UUID_OF_ROOTFS_ON_DISK_IMAGE* image_path=*path_to_disk_image_on_NTFS* image_hd=*GPT_UUID_OF_NTFS_DISK*
initrd /in_ntfs/initrd.img
}
Процедура загрузки при монтировании дисков: