Linux查找子目录中的所有文件并移动它们

时间:2016-09-23 07:34:20

标签: linux recursion move

我有一个Linux系统,其中一些用户将带有ftp的文件放在目录中。在此目录中,有用户可以创建的子目录。现在我需要一个脚本来搜索这些子目录中的所有文件,并将它们移动到一个目录中(用于备份)。问题:不应删除子目录。

用户的目录是/ files / media / documents / 并且必须在Directory / files / dump /中移动文件。我不关心/ files / media / documents /中的文件,它们已经被另一个脚本处理了。

我已经尝试过这个脚本:

for dir in /files/media/documents/
do
    find "$dir/" -iname '*' -print0 | xargs -0 mv -t /files/dump/
done

1 个答案:

答案 0 :(得分:2)

您可以使用find,而不是迭代。在man-page中有一个" -type"记录了选项,因此只需移动文件即可:

find "/files/media/documents/" -type f -print0 | xargs -0 mv -t /files/dump/

你也不想在/ files / media / documents /中查找文件,但是所有的子目录都是?只需添加" -mindepth":

find "/files/media/documents/" -type f -mindepth 1 -print0 | xargs -0 mv -t /files/dump/

或者您也可以使用" -exec"跳过第二个命令(xargs):

find "/files/media/documents/" -type f -mindepth 1 -exec mv {} /files/dump/ \;