我有几个从备份中恢复的文件,但其结构(文件位置)作为文件名。
例如:
C\Users\Welcome\Desktop\Doc1.docx
F\New folder\concerts\0904M002.WAV
我想编写一个脚本,逐个获取这些名称并创建相应的文件夹并将文件放在文件夹中。
例如:F\New folder\concerts\0904M002.WAV
--> 在当前目录下创建一个文件夹“F”,然后 cd 到 F 创建一个文件夹“New folder”,类似地创建“concerts”(或直接执行 mkdir F\New folder\concerts)
--> 将文件“F\New folder\concerts\0904M002.WAV”重命名为“0904M002.WAV”,并将其移动到新创建的文件夹“F\New folder\concerts\”
有人能帮我编写脚本吗?谢谢
答案1
使用以下 bash 脚本。
#!/bin/bash
for file in *\\*
do
destFile="${file//\\/\/}"
destFolder="${destFile%/*}"
[ -d "$destFolder" ] || mkdir -p "$destFolder"
mv -v "$file" "$destFile"
done
代码基本上用 替换\
源文件中的所有 以/
获取目标文件路径。然后它获取文件的目标目录并使用 创建它mkdir -p
。最后将文件复制到目标文件夹。
将代码写入文件(比如说script.sh
),然后在终端中执行
$ chmod +x script.sh $ ./script.sh