我正在寻找一个shell命令(我在MacOS bash上),可以为我做这项工作:
所以我有一个这样结构的文件夹:
.
├── Erie
│ └── archive
│ ├── 001
│ ├── 002
│ ├── 003
│ └── 004
│ ├── 0041
│ ├── 0042
│ └── 0043
└── SB
└── archive
├── 002
├── 003
└── 004
字符串
从本质上讲,我想摆脱的水平“档案”,并重新组织的文件夹
.
├── Erie
│ ├── 001
│ ├── 002
│ ├── 003
│ └── 004
│ ├── 0041
│ ├── 0042
│ └── 0043
└── SB
├── 001
├── 002
└── 003
型
我尝试过的:
cd Erie
find . -depth 2 -type d
# outputs:
#./archive/001
#./archive/003
#./archive/004
#./archive/002
型
然后我想附加命令将这些目录上移一级。我试着查找-exec
或xargs
函数,但我无法解决这个问题:
方法一:
find . -depth 2 -type d | xargs mv .
# gives me an error:
# mv: rename . to ./archive/002/.: Invalid argument
# this also generates a weird folder structure:
.
└── archive
└── 002
├── 001
├── 003
└── 004
├── 0041
├── 0042
└── 0043
型
方法二:
find . -depth 2 -type d -exec mv {} . ;
# This give me an error as well:
# find: -exec: no terminating ";" or "+"
型
2条答案
按热度按时间2vuwiymt1#
这里有一个简单的建议:
字符串
希望能帮上忙。
nafvub8i2#
如果不使用
find
:字符串