我使用脚本根据所有mp4文件的文件名创建子目录。我的文件和新创建的子目录同名,位于smae子目录中。现在我需要一个脚本将mp4文件移动到每个相应子目录的文件中。我希望这是有道理的。例如:我想将“crank(2006).mp4”移动到名为“crank(2006)”的子目录中。我有大约1200个这些文件移动到他们已经创建的子目录。请帮忙。
答案 0 :(得分:1)
删除.mp4后缀使用%%
从.mp4
变量的末尾删除子字符串$f
。
mkdir
语句确保子目录在mv
命令之前存在。
for f in *.mp4
do
subdir="${f%%.mp4}"
mkdir -p "$subdir"
mv "$f" "$subdir"
done
答案 1 :(得分:0)
mmv 'smae/*.mp4' 'smae/#1/#1.mp4'
这比(noddy)脚本更安全,因为mmv
将检查循环,名称冲突,移动任何文件之前移动中可能出现的问题等。
答案 2 :(得分:0)
以下代码将
将每个文件移动到相应的子目录
for f in *.mp4; do path=$(ls $f | rev | cut -c 5- | rev); mkdir $path; mv $f $path/. ; done
例如:如果“crank(2006).mp4”可用于当前目录,则名为“crank(2006)”的新子目录将被创建到当前目录和“crank(2006)”中。 mp4“文件将被移动到该子目录中。
注意:而不是“mv”你也可以使用“cp”复制文件