小编use*_*313的帖子

三点通配符

我有一个非常大的源代码目录结构,很难使用。我想运行一个工具将其转换为对我更有效的类似 Maven 的结构。当我完成我的工作时,我再次运行该工具将 Maven 结构转换回原来的糟糕结构。我非常熟悉各种 shell,是的,我可以编写一个包含数百个 cp 命令的脚本。但这将很难维持。

我希望能够使用 Perforce 的三点通配符之类的东西来移动或复制文件:

匹配当前工作目录和所有子目录下的所有文件。(匹配任何内容,包括斜杠,并且跨子目录匹配)

我的脚本将包含如下命令:

cp src/.../foobar/.../*.java trusted/src/main/java/.../foobar/.../*.java
Run Code Online (Sandbox Code Playgroud)

这个想法是移动目录的子树,同时保持该子树的结构。

有任何想法吗?

我在使用 Gilles 的 rsync 解决方案时遇到问题。这是一个测试脚本:

#!/bin/bash

rm -rf source

mkdir -p source/server/src/com/bodhi/foobar/this
mkdir -p source/server/src/com/bodhi/foobar/that
mkdir -p source/server/src/com/bodhi/other

echo "Hello World" > source/server/src/com/bodhi/foobar/this/A.java
echo "Hello World" > source/server/src/com/bodhi/foobar/that/B.java
echo "Hello World" > source/server/src/com/bodhi/other/C.java

rm -rf target
mkdir -p target/foobar/src/main/java

rsync \
  --include='**/foobar/**/*.java' \
  --include='**/foobar/**/' \
  --exclude='*' \
  --prune-empty-dirs \
  source/server/src/ target/foobar/src/main/java/
Run Code Online (Sandbox Code Playgroud)

shell directory recursive file-copy wildcards

5
推荐指数
1
解决办法
7015
查看次数

标签 统计

directory ×1

file-copy ×1

recursive ×1

shell ×1

wildcards ×1