如何在终端中批量移动文件夹内的所有文件至其他文件夹?
批量移动folder2内所有文件的解决方案
移动所有非隐藏文件
直接用通配符*匹配folder1/folder2下的所有普通文件,一次性移动到folder1:
mv folder1/folder2/* folder1/
同时移动隐藏文件
如果需要包含.xxx这类隐藏文件,用以下命令(会自动忽略..和.这两个特殊目录):
mv folder1/folder2/* folder1/folder2/.* folder1/
或者开启shell的dotglob选项,让*包含隐藏文件,操作更简洁:
# 开启dotglob,使*匹配隐藏文件 shopt -s dotglob mv folder1/folder2/* folder1/ # 关闭dotglob,避免影响后续操作 shopt -u dotglob
避坑提示
- 别用
ls输出配合xargs的方式,文件名带空格、特殊字符时会直接出错,通配符是最可靠的选择。 - 执行前确认你对
folder1有写入权限,否则会触发权限报错。
内容的提问来源于stack exchange,提问作者Semjon Shperling
相关产品推荐
相关产品推荐

