說我想所有文件複製內dir
到dest
:如何使用globstar複製目錄中的所有文件?
$ tree .
.
├── dest
└── dir
├── dir
│ ├── file1
│ └── file2
└── file3
這很容易,如果我知道文件名和目錄深度:
$ echo dir/f* dir/*/*
dir/file3 dir/dir/file1 dir/dir/file2
$ cp dir/f* dir/*/* dest/
$ tree dest/
dest/
├── file1
├── file2
└── file3
它也很容易(與globstar),以獲得只有目錄:
$ echo dir/**/*/
dir/dir/
但我不知道該怎麼水珠只有文件,例如以下不工作:
$ echo dir/**/*!(/)
dir/**/*!(/)
你是什麼意思與「唯一文件」?你想排除空目錄? – 2015-02-23 17:45:59
(AFAIK)你不能排除擴展球的所有目錄。像'*!(/)'這樣的模式不起作用,'!(* /)'掛起了shell。 – 2015-02-23 17:52:49
@CommuSoft:我想*排除所有的目錄,比如'dir/f * dir/*/*'。 – schnittstabil 2015-02-23 18:11:24