在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= 修改等。
本文解决WSL环境下find命令导致的编译错误问题,通过调整PATH环境变量、使用-execdir参数等方式避免因路径包含空格而引发的安全隐患。
349

被折叠的 条评论
为什么被折叠?



