在WSL下编译,时常出现如下错误:
find /home/ning/lede/build_dir/target-mipsel_24kc_musl/root-ramips/ -mindepth 1 -execdir touch -hcd “@1641871960” “{}” +
find: The relative path ‘Files/dotnet/’ is included in the PATH environment variable, which is insecure in combination with the -execdir action of find. Please remove that entry from $PATH
echo $PATH
查看当前 PATH 的值
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Home/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Home/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin
问题出在路径的空格上,需要重写 $PATH 的值。
解决方案有:
- 一般来说,我们不需要导入Windows下的PATH,因此,可以去掉。因此,在 /
etc/wsl.conf
中,设置
appendWindowsPath=false
- 执行 find 命令时,加上 -execdir 参数
- 使用 ln -s 重定向目标路径
- 尝试使用转义符,export PATH= 修改等。