catコマンドを使用して、ファイルの内容をディレクトリの下のすべてのファイル(再帰的に - すべてのファイルを意味します)にどのようにコピーできますか?
答え1
ディレクトリ階層全体のすべてのファイルをファイルの内容で上書きするには、次の手順を実行しますdata
。
find . -type f ! -path './data' -exec sh -c 'tee "$@" <data >/dev/null' sh {} +
欲しいなら追加コンテンツをdata
読み込み、tee -a
一番上に使用します。
これは! -path ./data
、読んでいるファイルが変更されるのを防ぐためです。
サブシェルはここから複数のパス名を取得し、find
それを使用してそのファイルにtee
コンテンツを配布します。data
cat
代わりに使用してくださいtee
:
find . -type f ! -path './data' -exec sh -c '
for pathname do
cat data >"$pathname"
done' sh {} +
ここで追加データを>>
代わりに使用してください>
。
安全なディレクトリで実行してください。ホームディレクトリでこれを実行すると中断されます。みんなあなたのファイル。これを回復するには、最近のバックアップから復元する必要があります。コマンドの機能や用途を知らずにインターネットからコピーして貼り付けたコマンドを実行しないでください。
関連: