我想将目录中的文件移动到具有相同名称的文件夹中。我想使用命令行或 bash 脚本来完成所有这些
#!/bin/bash
for f in $1; do
mv "$f".* <not sure what do do>
done
如何获取文件的名称并创建文件夹?
我想将目录中的文件移动到具有相同名称的文件夹中。我想使用命令行或 bash 脚本来完成所有这些
#!/bin/bash
for f in $1; do
mv "$f".* <not sure what do do>
done
如何获取文件的名称并创建文件夹?
据我了解,您打算提供一个目录名作为 shell 脚本的第一个参数。该目录中的文件将被移动到该目录的子目录中,这些子目录的名称与文件相同,但省略扩展名。在这种情况下:
这个怎么运作:
[ -d "$f" ] && continue
为了避免递归,这会跳过
$1
.base=${f%.*}
这将删除扩展
base
名的名称分配给 shell 变量。$f
这是一个后缀删除的例子。mkdir -p "$base"
这确保该目录
$base
存在。mv "$f" "$base/"
这会将文件移动到目录中。
回答正在建设中,请耐心等待:)
这是如何工作的
创建一个名为
makeDirs.sh
的文件,将下面的脚本复制到文件中,保存并使脚本可执行chmod +x /path/to/makeDirs.sh
请记住在运行任何脚本之前进行备份
使用要在其上操作的目录作为命令行参数调用脚本。演示
脚本