搞了个批量创建层级文件夹的小破工具,有需要的可以体验下~ 😀
1
zxCoder 2022-07-22 21:47:28 +08:00
挺有意思,不过暂时没这个需求 hhh
|
2
wxf666 2022-07-22 23:08:44 +08:00 1
有意思,也来写个 bash 版的
1. 默认去除前面的 1.1.2 、doc.math 之类的键名 2. 允许不按顺序指定目录,如此顺序可打乱:1 、1.1 、1.2 、1.2.1 、1.2.2 3. 父目录不存在,会在另一指定地方创建:1 、1.2.1 (不存在 1.2 ,所以 1.2.1 不会在 1 之下) #!/bin/bash declare -a SEP=('.' ' ') declare -r WORK_DIR='./' declare -r DANG_DIR='./dangling/' declare -r EXCLUDE_KEY=yes # 若要包含 1.1.2 之类的键名,设为空字符串 declare -A dict=([${SEP[0]}]=$WORK_DIR) sed '/^$/d' <<EOF | sort | doc.eng 英语 doc 考研资料 doc.math 数学 doc.movie 电影 2.3.1 ??? 2.3.1.1 !!! 2.2.1 Beyond 2 音乐 2.2 粤语 2.1.2 张震岳 2.1.1 周杰伦 2.1 华语 EOF while read -r path; do key=${SEP[0]}${path%%"${SEP[1]}"*} parent=${key%"${SEP[0]}"*} dict[$key]=${dict[${parent:-${SEP[0]}}]:-$DANG_DIR}${path#${EXCLUDE_KEY:+*${SEP[1]}}}/ echo "${dict[$key]}" done | tee /dev/stderr | xargs -d $'\n' mkdir 输出并创建: ./音乐 / ./音乐 /华语 / ./音乐 /华语 /周杰伦 / ./音乐 /华语 /张震岳 / ./音乐 /粤语 / ./音乐 /粤语 /Beyond/ ./dangling/???/ ./dangling/???/!!!/ ./考研资料 / ./考研资料 /英语 / ./考研资料 /数学 / ./考研资料 /电影 / |
3
wxf666 2022-07-23 00:52:33 +08:00 3
再来个 json 版的:
jq -r ' def work($obj; $path): if ($obj | type) == "object" then $obj | to_entries[] | ( $path + .key + "/", work(.value; $path + .key + "/") ) elif ($obj | type) == "array" then ($obj[] | work(.; $path)) else ($path + $obj + "/") end; work(.; "./") ' <<< ' { "考研资料": ["数学", "英语", "电影"], "音乐": { "华语": ["周杰伦", [[["张震岳"]]]], "粤语": "Beyond" } }' | tee /dev/stderr | xargs -d $'\n' mkdir 输出并创建: ./考研资料 / ./考研资料 /数学 / ./考研资料 /英语 / ./考研资料 /电影 / ./音乐 / ./音乐 /华语 / ./音乐 /华语 /周杰伦 / ./音乐 /华语 /张震岳 / ./音乐 /粤语 / ./音乐 /粤语 /Beyond/ |
5
Cmei 2022-07-26 00:11:14 +08:00 via iPhone
能不能搞个批量创建文件夹功能,比如创建 100 个没有,以姓名 命名的 文件夹。
|
6
atshow 2022-08-01 23:25:28 +08:00
小工具不错,已经收录至我的导航站。望长期维护。
|