【问题标题】:Shell Script for file transfer [duplicate]用于文件传输的 Shell 脚本 [重复]
【发布时间】:2021-07-30 16:36:35
【问题描述】:

我的源目录中有文件由每个用户上传,因此它们将在每个用户目录下创建。 例如:/uploads/Naveen/file1 /上传/Ram/file1 /上传/....

我需要一个 shell 脚本来检查这些超过 60 天的文件并将它们复制到目标目录并从源目录中删除它们。它们需要与用户目录一起传输,即 /destination_directory/Naveen/file1 和/destination_directory/Ram/file1 等等。

如果为此请求提供任何解决方案,那将非常有帮助。

【问题讨论】:

  • 你使用哪种 shell 语言?
  • 一般来说,一个好的 Stack Overflow 问题会询问您自己编写程序时遇到的问题,而不是要求我们为您编写程序。
  • 我用过这个程序..但它不能工作,因为文件传输后结构没有在目标路径中维护。 #!/bin/bash SourceDir=/path RemoteDir=/path find $SourceDir -maxdepth 1 -mtime +180 -type f -exec mv "{}" $RemoteDir \;

标签: shell


【解决方案1】:

要移动 /sourcedirectory 中的所有 文件 以及源目录下的所有 子文件夹,请使用:

find /sourcedirectory -mtime +60 -exec mv "{}" /destination/directory/ \;

要在 /sourcedirectory 中仅移动 文件,请使用 -maxdepth 1 标志:

find /sourcedirectory -maxdepth 1 -mtime +60 -exec mv "{}" /destination/directory/ \;

【讨论】:

  • 感谢您的回复。我知道这些命令。但问题是源目录的结构也必须反映在目标目录中。在“/sourcedir”下超过 x 天的文件/subfolder1" 应该使用结构 "/destinationdir/subfolder1" 传输,类似地,在 "/sourcedir/subfolder2" 下超过 x 天的文件作为 "/destinationdir/subfolder2"。每个子文件夹下的文件不应与其他子文件夹混合目标路径。我希望你明白。
猜你喜欢
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多