Linux 및 Windows 사용자 이름을 기반으로 하는 WSL2 동적 파일 경로

Linux 및 Windows 사용자 이름을 기반으로 하는 WSL2 동적 파일 경로

저는 bash 스크립트를 만들었고 WSL2의 Windows 및 Linux 부분에 대한 동적 파일 경로를 제공하고 싶습니다.

#!/bin/bash

# Create the workspace
mkdir /mnt/c/Users/FINIX/Documents/Workspace/test/

# Go to the workspace
cd /mnt/c/Users/FINIX/Documents/Workspace/test/

# Create the temp file to store the branches
touch /home/finix/test.txt

# Clone the repo
git clone https://github.com/test/test.git

# Going to the downloaded repo
cd /mnt/c/Users/FINIX/Documents/Workspace/test/TEST/

사용자 이름 finix를 Linux 측 머신과 WSL2의 Windows 측 사용자 이름으로 동적으로 변경하고 싶습니다.

답변1

아마도 더 좋은 방법이 있을 것입니다. 하지만 제가 생각해낸 방법은 다음과 같습니다.

Bash에서 Windows 사용자 이름을 검색하려면:

winuser=$(powershell.exe -c "Write-Host -NoNewLine ([Environment]::UserName)")

그런 다음 이를 사용하여 다음과 같은 디렉터리를 동적으로 생성할 수 있습니다.

mkdir /mnt/c/Users/${winuser}/Documents/Workspace/test/

Linux 사용자에게는 훨씬 쉽습니다. @terdon이 제안한 것처럼 이는 다음과 같이 간단할 수 있습니다.

touch ${HOME}/test.txt

또는, touch /home/${USER}/test.txt.

물론, Windows 측은 Windows 홈이 항상/mnt/C/Users/username

다른 곳에 있는 경우 사용자의 Windows 홈 디렉터리를 가져오려면 PowerShell 주문이 필요합니다. 그것은 다음과 같습니다:

winhome==$(powershell.exe -c 'Write-Host -NoNewLine $env:userprofile' | xargs -0 wslpath)(답변을 주신 @Panki에게 감사드립니다).

관련 정보