我有一个包含大量文件夹的目录,每个文件夹都有不同的内容。对于每个文件夹,我需要在其中创建一个名为ParamType
的子文件夹,并将所有文件夹的内容复制到新的子文件夹中。
从图形上看,我想要这个:
old.0
成为这个:
Directory
> Subfolder1
> > Files1
> Subfolder2
> > Files2
是否有一个简单的(命令行)解决方案,或者我最好手动浏览每个文件夹?
我绝对不是linux专家,因此非常感谢逐步解决方案。
答案 0 :(得分:2)
执行以下find命令:
find Directory -maxdepth 1 -mindepth 1 -type d -exec bash -c ' mv "$0" "old.0" && mkdir "$0" && mv "old.0" "$0"' {} \;
说明:
find Directory -type d -maxdepth 1 -mindepth 1
查找Directory
中的目录,但不要在子目录中下载。-exec
执行以下命令(目录名称存储在{}
中,并作为参数提供给bash -c
。mv "$0" "old.0
将找到的目录放在临时目录(重命名)。&& mkdir "$0"
如果移动成功,请使用旧目录名称创建新目录。&& mv "old.0" "$0"
并将新目录移至原始名称的新目录。使用示例:
$ mkdir test && cd test
$ ls
$ mkdir a b c && touch a/a b/b c/c
$ ls */*
a/a b/b c/c
$ find . -maxdepth 1 -mindepth 1 -type d -exec bash -c ' mv "$0" "old.0" && mkdir "$0" && mv "old.0" "$0"' {} \;
$ ls */*/*
a/old.0/a b/old.0/b c/old.0/c