bash - 如何通过 bash 脚本为目录中的单个文件创建文件夹?
问题描述
所以我有一个电影收藏被转储到一个文件夹中(我知道,回想起来是不好的做法。)我想稍微组织一下,这样我就可以使用 Radarr 来获取所有适当的元数据,但我需要所有单独的文件在他们自己的文件夹中。我创建了下面的脚本来尝试自动化该过程,但出现以下错误。
脚本
#! /bin/bash
for f in /the/path/to/files/* ;
do
[[ -d $f ]] && continue
mkdir "${f%.*}"
mv "$f" "${f%.*}"
done
编辑
因此,我现在按照 Benjamin W 的建议通过 Shellcheck.net 运行脚本。根据该站点,它不会引发任何错误,尽管当我尝试运行该命令时仍然会遇到相同的错误。
编辑 2*
现在没有错误,但是脚本在执行时什么也不做。
解决方案
分配只评估一次,而不是每当使用分配给的变量时,我认为这是您的脚本所假设的。
你可以使用这样的循环:
for f in /path/to/all/the/movie/files/*; do
mkdir "${f%.*}"
mv "$f" "${f%.*}"
done
这使用参数扩展而不是cut
摆脱文件扩展名。
推荐阅读
- git - GitHub 建议“强制推送可能会破坏您的拉取请求。” 为什么?
- javascript - 即使我的网站在 https 上,Pubnub Chat APi 也没有调用 SSL 请求
- java - java - 如何在java中的pdfbox中将文本放在矩形中?
- php - 安装 Laravel 时获取旧的 php 版本
- java - 无法使用 scim2 创建 askPassword 用户
- java - 如何设置变量imageview src?
- javascript - 如何在非 IE 浏览器(Chrome、Firefox、Edge)中的 Oracle APEX #orclapex 中获取 PC 名称(带/不带域)
- docker - Apk 添加 pdftk 不可满足的约束
- javascript - 如何使用密钥检索 Firebase 中的子数据?
- prestashop-1.7 - 如何在 Prestashop 1.7 registerHook('customerAccount') 中使用它?