![如何将一个目录中的所有文件(不包括子目录)移动到另一个目录?](https://linux22.com/image/69166/%E5%A6%82%E4%BD%95%E5%B0%86%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88%E4%B8%8D%E5%8C%85%E6%8B%AC%E5%AD%90%E7%9B%AE%E5%BD%95%EF%BC%89%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
如何将所有文件(不包括子目录)从一个目录移动到另一个目录。我希望该解决方案仅使用基本的 shell 脚本。
答案1
最简单的方法:
for f in /some/path/*; do
if [ -f "$f" ]; then
mv "$f" /some/other/path
fi
done
稍微复杂一点的方法:
find /some/path -mindepth 1 -maxdepth 1 -type f -exec mv {} /dome/other/path \;
答案2
使用find
:
find . -maxdepth 1 -type f -print0 | xargs -0 -I {} mv {} /path/to/target/directory/{}
这也将处理包含换行符的文件名。
答案3
cd $src
mv `find . -maxdepth 1 -type f -printf '%f\n'` $tgt
应该这样做, $src
你的源文件夹在哪里,$tgt
目标文件夹在哪里
答案4
$ cd $SOURCE_DIR
$ mv `ls -p| grep -v /` $Target_dir
执行步骤
- 使用 cd 命令移动到源目录。
- ls -p 为所有目录添加后缀“/”。
- grep -v 用于排除目录并获取常规文件。
- 最后将所有文件移动到目标目录。