我是shell脚本的新手。
我有一个命令可以将当前所有tml/xml
个文件直接复制到另一个文件,如下所示:
cp -f *.[tx]ml $path
但是我需要在执行上述命令时排除一个文件(excludeme.xml) 我尝试了下面的命令,但没有用。
find . -name "excludeme.xml" | xargs -0 -I {} cp -f *.[tx]ml $path
答案 0 :(得分:2)
尝试:
find . ! -name excludeme.xml | ...
或
ls *.[tx]ml | while read -r file; do test x"$file" = xexcludeme.xml || cp -f "$file" "$path" done
注意领先的'x';在现代贝壳中可能没有必要,但会 当文件名以“ - ”开头时防止错误。
答案 1 :(得分:2)
如果是bash
那么
shopt -s extglob
cp !(excludeme).[tx]ml destination
答案 2 :(得分:0)
ls *.[tx]ml | grep -v excludeme.xml | xargs cp -f -t $path