使用wget命令下载文件后如何获取目标文件的完整相对路径?
提取Wget下载文件的相对路径
嘿,我刚好处理过类似的需求,结合你用Windows路径(c:/test作为下载根目录)的情况,给你几个实用的方法,按需选择就行:
方法一:PowerShell(推荐,Windows环境最直观)
- 打开PowerShell,切换到你的下载根目录:
cd c:/test - 执行这条命令,就能直接输出所有文件的相对路径:
原理很简单:Get-ChildItem -Recurse -File | ForEach-Object { $_.FullName.Substring($PWD.Path.Length + 1) }Get-ChildItem -Recurse -File会递归找出所有文件,然后我们截取掉c:/test这个根路径的部分,剩下的就是你要的com/test/package/filename1.text这类相对路径。
方法二:CMD命令提示符(Windows环境)
如果你习惯用CMD,也可以这样操作:
- 打开CMD,切换到下载根目录:
cd c:\test - 执行这条命令:
这里通过延迟变量替换,把每个文件的完整路径里的for /r %f in (*) do @(set "full=%f" & setlocal enabledelayedexpansion & echo !full:c:\test\=! & endlocal)c:\test\替换为空,直接得到相对路径。
方法三:Linux/macOS环境(如果是类Unix系统)
如果你的下载目录是类Unix系统里的(比如/test),用find命令就能快速搞定:
- 切换到下载根目录:
cd /test - 执行:
find . -type f | sed 's/^\.\///'find . -type f递归列出所有文件,sed去掉开头的./,就得到了干净的相对路径。
内容的提问来源于stack exchange,提问作者Sachin




