从列表中删除周六创建/修改的文件

从列表中删除周六创建/修改的文件

我不确定是否可能。

我执行 ls -l,它给出当前目录中的所有文件。有没有办法只列出周六未使用 shell 命令创建/修改的文件?

答案1

一种方法:

$ LANG=C find . -maxdepth 1 -printf '%p %AA\n' |
    awk '$NF=="Saturday"{next}{$NF=""}1'

我假设我们不打印文件全部星期六。这是否是您所期望的。

答案2

更简单:

find . -maxdepth 1 -printf '%Ta\t%p\n' | grep -v -i '^sat'

参考:回答。

答案3

您应该选择您需要的时间

  • %y修改
  • %w创建
  • %z改变

或任意组合:

stat * --printf="%n\t%y %z\n" | grep -vF $(date -d "last Saturday" +%F) | cut -f1

还可以选择您需要的信息并撰写--printf=行。

或者你可以只使用find命令

find -maxdepth 1 -type f -daystart \
     ! -mtime $[$(date +%d)-$(date -d "last Saturday" +%d)]

相关内容