С помощью asp
у вас есть две опции, обе описаны на странице man
. Первый — просто взять файлы сборки :export
:
export TARGET...
Dump the build source files for each target into a directory of the target’s name in $PWD. Targets can be specified simply as package to check out the source files at HEAD, or in repository/package format to checkout the source files which were used to push the package which exists in repository.
И checkout
также получает файлы сборки, но в процессе инициализирует репозиторий git.
checkout TARGET...
Create a new git repository containing the full source and history for each of the given targets. The new repository will pull from the repository in $ASPROOT and must be updated separately after using asp update. If a checkout occurs on the same filesystem as $ASPROOT, most of the metadata can be hard linked, making this a relatively cheap copy.
См. этот документ WSL для получения информации о сопоставлении разрешений между дисками Windows и WSL. По умолчанию разрешения Windows для файла — это то, что вы увидите, и chmod на самом деле не имеет большого эффекта.
Но диски могут монтироваться с поддержкой метаданных, и тогда WSL будет применять разрешения, найденные в метаданных, вместо разрешений Windows.Это позволяет WSL сопоставлять разрешения Linux для файлов на дисках Windows.
Автоматическое подключение дисков Windows с поддержкой метаданных:
/etc/wsl.conf
в вашем экземпляре WSL [automount]
enabled = true
options = "metadata,umask=22,fmask=11"
wsl --terminate <distroname>
из PowerShell или cmd. Затем вы должны обнаружить, что touch
приводит к .rw-r--r--
, а ваш код приводит к ожидаемому.rwxr-x---
(750 ).
Протестировано и подтверждено (, включая ваше тестовое приложение )по крайней мере на моем экземпляре WSL2 / Ubuntu 20.04.
Также обратите внимание, что производительность WSL2 на дисках Windows действительно ужасна по сравнению с WSL1. Если вы собираетесь выполнять на этом диске какие-либо операции с интенсивным использованием файлов, по возможности используйте экземпляр WSL1. Или просто придерживайтесь ext4 fs на WSL2.