同じ名前のすべてのサブディレクトリに4つのファイルをコピーしたいと思います。サンプルディレクトリは次の場所にあります。
/toplevel/images/sources
もう一つが入っています。
/toplevel/documents/files/sources
「sources」という他のサブディレクトリにも、これらのファイルをすべて含める必要があります。 「トップレベル」ディレクトリでこれを行うには、cpコマンドをどのように使用しますか?
答え1
次のコマンドを使用して、すべてのディレクトリのリストをインポートできますfind
。たとえば、次のようになります。
$ find /toplevel -name sources -type d
/toplevel/documents/files/sources
/toplevel/images/sources
-name sources
find
名前付きの結果のみを通知し、ディレクトリsources
のみ-type d
を表示するようにフィルタリングします。これをforループと組み合わせると、/myfiles
ディレクトリ(たとえば)内のすべてのファイルをここにコピーできます。
$ for directory in $(find /toplevel -name sources -type d); do cp /myfiles/* "$directory"; done
$ tree /toplevel
/toplevel
├── documents
│ └── files
│ └── sources
│ ├── file_1
│ ├── file_2
│ ├── file_3
│ └── file_4
└── images
└── sources
├── file_1
├── file_2
├── file_3
└── file_4
5 directories, 8 files