双星号是什么意思?

时间:2016-11-15 21:50:14

标签: powershell

我经常看到使用双星号路径的PowerShell命令:

Copy-Item c:\source\** d:\target

这个例子可能是错的,因为我还不太了解POSH。但我确实看到在路径中使用**的示例。这是什么意思?

2 个答案:

答案 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

下获得任何.txt文件

基本上,**代表目录通配符,但不代表递归。

编辑:只是用*测试它,它做同样的事情(所以Copy-Item .\dbl_wc\*\*.txt copy_target -Force与上面完全相同)