gpt4 book ai didi

linux - 移动时附加而不是覆盖文件

转载 作者:太空狗 更新时间:2023-10-29 11:16:43 26 4
gpt4 key购买 nike

我有以下目录结构:

+-archive
+-a
+-data.txt
+-b
+-data.txt
+-incoming
+-a
+-data.txt
+-c
+-data.txt

我如何执行与 mv incoming/* archive/ 相同的操作,但将 incoming 中的文件内容附加到 archive 中的文件内容> 而不是覆盖它们?

最佳答案

# move to incoming/ so that we don't
# need to strip a path prefix
cd incoming

# create directories that are missing in archive
for d in `find . -type d`; do
if [ ! -d "../archive/$d" ]; then
mkdir -p "../archive/$d"
fi
done

# concatenate all files to already existing
# ones (or automatically create them)
for f in `find . -type f`; do
cat "$f" >> "../archive/$f"
done

这应该在 incoming 中找到任何文件并将其连接到 archive 中的现有文件。

重要的部分是inside incoming,否则我们必须去除路径前缀(这是可能的,但在上述情况下是不必要的)。在上面的例子中,$f 的值通常看起来像 ./a/data.txt,因此重定向到 ../archive/。/a/data.txt.

关于linux - 移动时附加而不是覆盖文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2529391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com