abc.txt
私のフォルダ/etc/zyz/
と複数のサブフォルダにファイルがあります。/etc/zyz-1/
/etc/zyz-2/
echo
コマンドを使用してフォルダ内のすべてのファイル(すべて名前付き)を変更するにはどうすればよいですか?一部のシステムにはフォルダが2つしかあり、他のシステムには10を超えるフォルダがあります。abc.txt
/etc/zyz
私が実行したいコマンドの例
echo 'New line data' >> abc.txt
abc.txt < /dev/null
ベストアンサー1
次のツリーが与えられたとき(空のabc.txt):
.
├── zyz
│ └── abc.txt
├── zyz-1
│ └── abc.txt
└── zyz-2
└── abc.txt
次のコマンドを使用して、すべてのabcファイルを一覧表示できます。
$ echo zyz*/abc.txt
zyz-1/abc.txt zyz-2/abc.txt zyz/abc.txt
tee -a
これらすべてのファイルにいくつかの入力ストリームを同時に追加できます。
$ echo 'New line data' | tee -a zyz*/abc.txt
New line data
2回実行すると、各abc.txtに2行が含まれます。
$ cat zyz/abc.txt
New line data
New line data
$ cat zyz-1/abc.txt
New line data
New line data
$ # ...
これを消去するには、次のようにします。
$ </dev/null tee zyz*/abc.txt
または
$ : | tee zyz*/abc.txt
find -exec
(短い名前を持つファイルのほんの数だけがARG_MAX制限に達してはいけませんが、私のフォームで使用したファイルの数が多すぎる必要があります+
(マンページを参照)。