У меня есть каталог oridir
со следующей структурой:
.
├── DIRA
│ ├── DIRA1
│ │ └── file2.txt
│ └── DIRA2
│ ├── file1.xls
│ └── file1.txt
└── DIRB
├── DIRB1
│ └── file1.txt
└── DIRB2
└── file2.xls
Я должен копировать файлы с расширением .xls
, сохраняя при этом структуру каталогов.Поэтому мне нужно иметь следующий каталог и файлы в папке newdir
:
.
├── DIRA
│ └── DIRA2
│ └── file1.xls
└── DIRB
└── DIRB2
└── file2.xls
Я попробовал следующую команду, но она скопирует все файлы и папки:
cp -r oridir newdir
Поиск необходимых файлов можетсделать это следующим образом:
$ find oridir | grep xls$
oridir/DIRB/DIRB2/file2.xls
oridir/DIRA/DIRA2/file1.xls
Также следующим образом:
$ find oridir -type f -iname *.xls
./oridir/DIRB/DIRB2/file2.xls
./oridir/DIRA/DIRA2/file1.xls
Но как создать эти папки и скопировать файлы.Как я могу добиться этого выбранного создания каталогов и копирования файлов с помощью `bash 'в Linux?
Редактировать: в некоторых именах файлов и каталогов также есть место.