我正在尝试在没有一个文件的情况下复制目录内容。我遇到的问题是文件嵌套了几个文件夹,而extglob运算符无法匹配。
假定以下文件夹结构:
我想将源文件中的所有内容(包括子文件夹和文件)复制到dest smu.txt中。
我本以为可以做到以下几点:
#!/bin/bash
shopt -s extglob
cp -vr source/!(smu.txt) dest/
但它仍会复制smu.txt。
我也尝试了以下失败的尝试:
#!/bin/bash
shopt -s extglob
shopt -s globstar
cp -vr source/!(**/smu.txt) dest/
如果smu.txt直接位于../source
下,它会成功忽略它,但是如何获取它来忽略子目录中的文件?
答案 0 :(得分:1)
您是否尝试过使用find? 也许这可行:
$ find -name "source/*!(smu.txt)" -exec cp -vr {} dest/\;