我有一个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
答案 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/ \;