此bash命令会将目录中尚未存在的所有文件移动到新的自命名文件夹中。
ll | grep ^- | awk -F"." '{print $2 "." $3}' | awk -F":" '{print $2}' | awk '{$1=""; print $0}' | cut -c2- | awk -F"." '{print "mkdir ""$1"";mv ""$1"."$2"" ""$1"""}' > tmp;source tmp
答案 0 :(得分:1)
将当前目录中的所有文件移动到以文件名基本部分命名的目录中:
for f in *
do
[ -f "$f" -o -d "${f%.*}" ] || continue
mkdir "${f%.*}" && mv "$f" "${f%.*}"
done
这会跳过当前目录中不是-f
个文件的任何条目;它还会跳过任何已经为其命名的目录。然后它创建目录(通过从文件名中删除“句点后跟任何内容”命名),如果成功,则将文件移动到该目录中。