【发布时间】:2020-11-02 14:09:33
【问题描述】:
我需要帮助设置一个 bash 脚本,以根据文件名称的开头(直到第一个 .)将文件移动到文件夹,例如:
- aaa.123.txt
- aaa.124.txt
- aaa.156.txt
- aaa.122.txt
- bbb.1424.txt
- bbb.13.txt
- bbb.13.txt
- ccc.222.txt
这将生成以下文件夹,其中包含适当的文本文件
- aaa/
- aaa.123.txt
- aaa.124.txt
- aaa.156.txt
- aaa.122.txt
- bbb/
- bbb.1424.txt
- bbb.13.txt
- bbb.13.txt
- ccc/
- ccc.222.txt
【问题讨论】:
-
for i in *.*.txt; do d=${i%%.*}; mkdir -p "$d"; mv "$i" "$d"; done这不会为您创建任何文件夹,但您可能想说“目录”。 -
@WilliamPursell 区分术语 folder 和 directory 是不必要的,只是令人困惑 - 这有什么影响?
-
@alecxs 我不同意。文件夹是 gui 的产物。在物理世界中,文件夹包含文件。目录没有。认为目录包含文件是常见的基本误解之一。
-
这种错误信念的影响是什么?我读了this 仍然不明白,这种知识没有任何好处
-
“没有好处”!?严重地?您没有看到了解文件系统如何工作的好处吗?你没有看到误解它的危害吗?查看 iTunes 并观察它因迎合这种误解而造成的磁盘资源的惊人浪费。处理文件的能力是计算机的核心目的之一。不了解该系统的工作原理会导致效率低下、不优雅的解决方案。 “文件夹”这个词是由市场营销部门引入的,在与 gui 无关的技术讨论中没有位置。