Я хочу написать простой сценарий оболочки, который войдет во все подпапки в каталоге и организует файлы в подпапках в новые каталоги. В основном в терминале это будет выглядеть так:
cd ../subfolder1
mkdir newfolder
mv *.txt newfolder
cd ../subfolder2
mkdir newfolder
mv *.txt newfolder
etc.
Однако команда cd
, похоже, не работает для сценария оболочки. Кто-нибудь знает, как я мог это сделать?
Если Ваша структура каталогов следующие:
├── subfolder1
│ ├── foo.txt
│ └── bar.other
└── subfolder2
├── foo2.txt
└── baz.old
Выполнение следующей команды:
find . -maxdepth 1 ! -path . -type d -exec sh -c "mkdir {}/newfolder && mv {}/*.txt {}/newfolder" \;
создаст ниже древовидной структуры:
├── subfolder1
│ ├── newfolder
│ │ └── foo.txt
│ ├── bar.other
└── subfolder2
├── newfolder
│ └── foo2.txt
├── baz.old