如何使用 chown 命令和 mv 与 find 命令

如何使用 chown 命令和 mv 与 find 命令

我一直在寻找,发现这个问题几乎解决了我的问题。目标是在 Ubuntu 服务器上有一个文件夹,其他计算机可以连接到该文件夹​​并保存文件。我在一个名为“import”的文件夹中有两个目录(“Movies”和“TV”)。我修改了命令,使其完美地将这些文件传输到我的实际 Plex 媒体目录中。我唯一想不通的是如何将文件的所有权更改为 plex 用户。有没有办法chown在移动文件之前使用该命令?

我不想弄乱导入目录,因为chown执行命令时可能会有人(nobody:nogroup)写入它。另一种方法是将chown -R plex:plex命令应用于我的/mnt/nfs-plex,但随后我会一遍又一遍地对我的文件执行此操作,从而导致不必要的硬盘活动。我包含了修改后的命令版本。

电影:

find /mnt/import/Movies/ -maxdepth 1 -mmin +30 -type f -exec mv "{}" mnt/nfs-plex/Movies \;

电视:

find /mnt/import/TV/* -maxdepth 0 -mmin +30 -type d -exec mv "{}" /mnt/nfs-plex/TV \;

答案1

在您的情况下,您可以将两个-exec操作嵌套在一起,如下所示:

find ... -exec chown ... {} \; -exec mv {} ... \;

或者使用如下 bash 命令字符串:

find ... -exec bash -c 'chown ... "$1" && mv "$1" ...' _ {} \; 

相关内容