bash可以基于文件名创建文件夹,然后将文件移动到文件夹中吗?

用户名

在/ Desktop / a /上,有一组文件:

DSCN1840.AVI00001.png
DSCN1840.AVI00002.png
DSCN1840.AVI00003.png
DSCN1841.AVI00001.png

我想要具有以下结构:

Desktop/a/DSCN1840/

  DSCN1840.AVI00001.png

  DSCN1840.AVI00002.png

  DSCN1840.AVI00003.png

Desktop/a/DSCN1841/

  DSCN1841.AVI00001.png
杰夫·谢勒(Jeff Schaller)

作为一个步骤,您可以循环浏览所有文件并收集所需的子目录名称。如果该子目录尚不存在,则创建它;然后将该文件移到该子目录中:

for f in *.png
do
  subdir=${f%%.*}
  [ ! -d "$subdir" ] && mkdir -- "$subdir"
  mv -- "$f" "$subdir"
done

其中的关键部分是in中的参数扩展${f%%.*},它表示删除%%句点中最长的匹配部分(),后跟所有内容,从而有效地剥离掉.AVI00003.png文件名的各个部分,仅保留前导目录指示符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据部分文件名创建文件夹,然后将文件移动到创建的文件夹中

根据部分文件名批量创建文件夹并将文件移动到文件夹

如何将文件名基于文件夹名称的文件移动到同一文件夹中的子文件夹

遍历目录中的文件,根据文件名创建文件夹,并将文件移动到相应的文件夹中

批处理命令根据文件名创建文件夹并将文件/文件夹移动到创建的文件夹

为每个文件创建文件夹并将文件移动到文件夹中

根据文件名 bash 创建文件夹

创建文件夹时将文件移动到文件夹

Shell脚本:按当前日期创建文件夹,然后将.png文件移动到该子文件夹中

如何基于文件名的第一部分和第二部分创建文件夹并将文件移动到该文件夹中?

如何将文件批量移动到与每个文件名对应的文件夹中?

将excel中的文件名移动到特定文件夹

R:使用文件名创建文件夹

根据文件名自动创建文件夹

根据文件名创建文件夹

为每个文件名创建文件夹并移动文件

批处理文件以基于文件名创建文件夹

将文件从文件夹移动到文件夹

将文件从单个文件夹移动到具有文件名等名称的现有文件夹

bash别名创建文件夹并移动文件

根据文件名时间戳Powershell将文件移动到年/月文件夹

将文件移动到以文件名部分命名的文件夹

Gradle将构建文件夹移动到/ tmp

如何从文件名创建文件夹并在 PHP 中移动它?

根据文件名生成文件夹并将文件移动到生成的文件夹中的子文件夹

按文件名中的日期将多个文件移动到名为日期的文件夹中

如何将具有相似文件名的文件移动到 Python 中的新文件夹中

在文件夹中创建文件

根据创建日期将文件移动到文件夹