![如何使用 chown 命令和 mv 与 find 命令](https://linux22.com/image/950637/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20chown%20%E5%91%BD%E4%BB%A4%E5%92%8C%20mv%20%E4%B8%8E%20find%20%E5%91%BD%E4%BB%A4.png)
我一直在寻找,发现这这个问题几乎解决了我的问题。目标是在 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" ...' _ {} \;