我经常看到使用双星号路径的PowerShell命令:
Copy-Item c:\source\** d:\target
这个例子可能是错的,因为我还不太了解POSH。但我确实看到在路径中使用**
的示例。这是什么意思?
答案 0 :(得分:3)
这是一个递归的通配符。
C:\sources\**\*.mp3
会抓住
c:\sources\cool.mp3
c:\sources\redneck\super_cool.mp3
c:\sources\bluegrass\random\the_coolest.mp3
等等
它只是说抓住C:\ source(包括子目录)下的所有内容并将其全部复制到d:\ target。
答案 1 :(得分:3)
实际上,我认为上述答案是错误的。
假设我们有以下目录结构:
dbl_wc (top level)
--one_level_in
--aa.txt
--one_level_in1
--bb.txt
--deeper_dir
--abc.txt
Copy-Item .\dbl_wc\**\*.txt copy_target -Force
只会在。\ dbl_wc下的任何目录中查找* .txt。并且它不会查看子目录(例如。\ dbl_wc \ one_level_in1 \ deeper_dir)。所以它会得到aa.txt和bb.txt,但不是abc.txt。它也不会直接在dbl_wc
基本上,**代表目录通配符,但不代表递归。
编辑:只是用*测试它,它做同样的事情(所以Copy-Item .\dbl_wc\*\*.txt copy_target -Force
与上面完全相同)