【发布时间】:2013-08-19 08:43:25
【问题描述】:
作为一个 Linux 菜鸟(想学习!),我一直在浏览和搜索,但遗憾的是无法为我的问题找到正确的解决方案。我有一个包含几个文件(很多)的目录,我想将它们移动到不同的目录(也要做)。具体来说:
我的目录是:/data/myowndir/,每个文件的名称如
- CV02_T1_[随机字符].REC
- PM03_T2_[随机字符].PAR
我想将每个文件按各自的前 7 个字符(文件名)移动到该目录内的子目录,这样:
- CV02_T1_*.REC ---> /data/myowndir/CV02_T1
- CV02_T1_*.PAR ---> /data/myowndir/CV02_T1(与上一个目录相同)
- PM03_T1_*.REC ---> /data/myowndir/PM03_T1
- PV05_T2_*.PAR ---> /data/myowndir/PV05_T2
- 等
所以我想移动多个文件并创建这些多个目录。
但是,有两个限制。
- 该目录还包含扩展名为 .nii 的文件,我不想移动。
- 其次,有些文件的filenames包含字符串sT13,我想将其移至单独的目录,例如:
PM03_T2_[随机字符]sT13[随机字符].PAR ---> /data/myowndir/PM03_struc
(所以只有文件名的前 5 个字符和附加字符串 [struc] 添加到新目录名)
有人知道怎么做吗?我应该编写脚本还是可以从命令终端执行此操作?我一直在阅读类似问题的其他答案以及 mv、mmv、find、while、for、rsync 的手册页;但我不知道如何组合起来。
编辑: 如果我的问题像暗示的那样太具体,那么让我先重新措辞以使其更清楚并放弃约束:
如何根据文件名的第一部分将多个文件从一个目录移动到多个子目录中?
【问题讨论】:
-
过于本地化。这不太可能对未来的访问者有任何帮助。
-
您能说得更具体些吗? “过于本地化”是什么意思。请注意,英语不是我的母语。
-
这暗示问题,就目前而言,似乎非常具体,并且该解决方案不太可能帮助任何未来的访问者。
-
我明白了。我会等着看是否有人会好心地帮助我。即使我被否决了很多。但是,我将编辑我的问题以改进此“本地化问题”以供将来访问者使用