我想编写一个简单的 shell 脚本,它将进入目录中的所有子文件夹,并将子文件夹中的文件组织到新目录中。基本上在终端中它看起来像:
cd ../subfolder1
mkdir newfolder
mv *.txt newfolder
cd ../subfolder2
mkdir newfolder
mv *.txt newfolder
etc.
但是,该cd
命令似乎不适用于 shell 脚本。有人知道我该怎么做吗?
答案1
如果你的目录结构如下:
├── 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