從清單中刪除週六建立/修改的文件

從清單中刪除週六建立/修改的文件

我不確定是否可能。

我執行 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)]

相關內容