如何将所有文件(不包括子目录)从一个目录移动到另一个目录。我希望该解决方案仅使用基本的 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 用于排除目录并获取常规文件。
- 最后将所有文件移动到目标目录。