Удалить из списка файлы, созданные/измененные в субботу

Удалить из списка файлы, созданные/измененные в субботу

Я не уверен, возможно ли это.

Я делаю 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)]

Связанный контент