我们如何使用 cat 命令将文件的内容复制到目录下的所有文件(递归地 - 我的意思是每个文件)?
答案1
要使用文件的内容覆盖整个目录层次结构中的每个文件data
:
find . -type f ! -path './data' -exec sh -c 'tee "$@" <data >/dev/null' sh {} +
如果你想附加的内容data
,然后tee -a
在上面使用。
这! -path ./data
是为了避免修改我们正在读取的文件。
子 shell 将从中获取一堆路径名find
并将其用于tee
将内容分发data
到这些文件。
使用cat
而不是tee
:
find . -type f ! -path './data' -exec sh -c '
for pathname do
cat data >"$pathname"
done' sh {} +
在这里,到附加数据,使用>>
代替>
.
在安全的目录中运行它。在你的主目录中运行它会破坏全部你的文件。要从中恢复,您需要从最近的备份中恢复。在不知道命令的用途或可能用途的情况下,切勿运行从互联网复制和粘贴的命令。
有关的: