特定の親ディレクトリのすべての子ディレクトリにあるzipファイル

特定の親ディレクトリのすべての子ディレクトリにあるzipファイル

parent_directory/次のサブディレクトリとを含むディレクトリがchild1/あるchild2/としますchild3/

zipすべての*.txtファイルをそのディレクトリに書き込むためのスクリプトを作成childx/するにはどうすればよいですか?childx.zipchildx.zipchildx/

答え1

サンプル

$ mkdir -p parent_directory/child{1..3}
$ touch parent_directory/child{1..3}/file1.txt
$ touch parent_directory/child{1..3}/file2.txt

$ tree parent_directory/
parent_directory/
├── child1
│   ├── file1.txt
│   └── file2.txt
├── child2
│   ├── file1.txt
│   └── file2.txt
└── child3
    ├── file1.txt
    └── file2.txt

3 directories, 6 files

解決策

次に、zipファイルをスクリプトとして作成します。

$ cd parent_directory/; for i in *; do find ${i} -name "*.txt" -print | zip ${i}.zip -@; mv ${i}.zip ${i}; done; cd -
  adding: child1/file2.txt (stored 0%)
  adding: child1/file1.txt (stored 0%)
  adding: child2/file2.txt (stored 0%)
  adding: child2/file1.txt (stored 0%)
  adding: child3/file2.txt (stored 0%)
  adding: child3/file1.txt (stored 0%)

結果

結果:

$ tree parent_directory/
parent_directory/
├── child1
│   ├── child1.zip
│   ├── file1.txt
│   └── file2.txt
├── child2
│   ├── child2.zip
│   ├── file1.txt
│   └── file2.txt
└── child3
    ├── child3.zip
    ├── file1.txt
    └── file2.txt

3 directories, 9 files

$ unzip -l parent_directory/child1/child1.zip
Archive:  parent_directory/child1/child1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  07-05-2018 10:08   child1/file2.txt
        0  07-05-2018 10:08   child1/file1.txt
---------                     -------
        0                     2 files
$ unzip -l parent_directory/child2/child2.zip
Archive:  parent_directory/child2/child2.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  07-05-2018 10:08   child2/file2.txt
        0  07-05-2018 10:08   child2/file1.txt
---------                     -------
        0                     2 files
$ unzip -l parent_directory/child3/child3.zip
Archive:  parent_directory/child3/child3.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  07-05-2018 10:08   child3/file2.txt
        0  07-05-2018 10:08   child3/file1.txt
---------                     -------
        0                     2 files

引用する

答え2

努力する、

$ zip -R parent_directory '*.txt'

関連情報