如何将一个目录中的所有文件(不包括子目录)移动到另一个目录?

如何将一个目录中的所有文件(不包括子目录)移动到另一个目录?

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

执行步骤

  1. 使用 cd 命令移动到源目录。
  2. ls -p 为所有目录添加后缀“/”。
  3. grep -v 用于排除目录并获取常规文件。
  4. 最后将所有文件移动到目标目录。

相关内容