使用cat命令将文件的内容复制到目录下的所有文件(递归)

使用cat命令将文件的内容复制到目录下的所有文件(递归)

我们如何使用 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 {} +

在这里,到附加数据,使用>>代替>.

在安全的目录中运行它。在你的主目录中运行它会破坏全部你的文件。要从中恢复,您需要从最近的备份中恢复。在不知道命令的用途或可能用途的情况下,切勿运行从互联网复制和粘贴的命令。

有关的:

相关内容