如何用单条命令将文件移入对应同名文件夹?
单条命令实现文件移入同名文件夹(不含后缀)
可以通过单条命令完成需求,以下分不同操作系统给出实现方案:
Linux/macOS(Bash/Zsh)
执行这条单条命令即可完成操作:
for f in *; do if [ -f "$f" ]; then dir="${f%.*}"; mkdir -p "$dir"; mv "$f" "$dir/"; fi; done
命令细节说明:
for f in *:遍历当前目录下的所有条目if [ -f "$f" ]:仅对文件进行操作,跳过已存在的文件夹dir="${f%.*}":截取文件名的前缀部分(去掉最后一个.及之后的后缀内容),作为目标文件夹名mkdir -p "$dir":创建目标文件夹,-p参数确保即使文件夹已存在也不会报错mv "$f" "$dir/":将原文件移动到对应的目标文件夹中
Windows PowerShell
使用这条单条命令实现:
Get-ChildItem -File | ForEach-Object { $dir = $_.BaseName; New-Item -ItemType Directory -Path $dir -Force; Move-Item -Path $_.FullName -Destination "$dir\$($_.Name)" }
命令细节说明:
Get-ChildItem -File:获取当前目录下的所有文件ForEach-Object:逐个处理每个文件对象$_.BaseName:提取文件的基础名称(不含扩展名)作为目标文件夹名New-Item -Force:创建目标文件夹,-Force参数允许跳过已存在的文件夹(避免报错)Move-Item:将文件移动到对应的目标文件夹中
内容的提问来源于stack exchange,提问作者tolga
相关产品推荐
相关产品推荐

