【问题标题】:Shell Script to finding files in specific folder and based on "age" of files用于在特定文件夹中查找文件并基于文件“年龄”的 Shell 脚本
【发布时间】:2017-04-14 05:18:55
【问题描述】:

你好,我有作业要在 linux 中制作一个 shell 脚本,以根据这些文件的“年龄”在特定文件夹中查找文件。然后我想将该文件移动到其他特定文件夹。

谢谢你

【问题讨论】:

  • 了解 Unix。这是答案read this
  • 两个有用的命令很可能是带有-mtime参数的findstat...
  • 像其他人提到的那样,文件的“年龄”非常模糊。通常,UNIX 文件系统跟踪 3 个日期/时间:上次访问、修改和更改(OSX 使用的 HFS 也跟踪文件创建)。是的,您可能希望使用find 命令,使用标志:-mtime-maxdepth(如果只是针对特定目录)和-exec(针对mv cmd 和它的标志如果需要的话)。这是一个与您非常相似的question

标签: linux bash shell command


【解决方案1】:

一种方法是使用find 命令,并使用-mtime 指定“年龄”(如果年龄相对于其他文件,则使用-newer)。详情请见man find

要移动文件,您可以使用mv(再次参见man mv)。

目录可以作为参数传递或存储在变量中然后使用 作为命令中的变量。

在不了解您的任务的情况下,我会说使用以下内容:

find <directory> -mtime <n> | xargs mv -t <destination>

其中xargs 用于将结果从find 传递给mv 命令。

【讨论】:

  • 为了保持所有关于查找(并在一个进程中),您可以使用find-exec 选项,而不是通过管道输出并使用 xargs
  • 当我执行这个 find /home/user/Documents/ -mtime -1 | xargs mv -t /home/user/Downloads/ 不仅是文件,而且文件夹 Documents 也移动到了 Downloads。如何解决?
  • 没关系,我明白了。我只需要在执行 find 时添加 -type f 感谢您的回答,兄弟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2014-02-19
  • 1970-01-01
  • 2023-01-21
  • 2014-07-23
  • 2015-11-15
  • 2020-12-16
相关资源
最近更新 更多