Dateien aus der Liste entfernen, die am Samstag erstellt/geändert wurden

Dateien aus der Liste entfernen, die am Samstag erstellt/geändert wurden

Ich bin nicht sicher, ob das möglich ist.

Ich mache ls -l, es gibt alle Dateien im aktuellen Verzeichnis aus. Gibt es eine Möglichkeit, mit einem Shell-Befehl nur Dateien aufzulisten, die nicht an Samstagen erstellt/geändert wurden?

Antwort1

So können Sie das tun:

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

Ich nehme an, wir drucken keine Dateien füralleSamstags. Dies ist, oder nicht, was Sie erwarten.

Antwort2

Einfacher:

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

Verweis:DasAntwort.

Antwort3

Wählen Sie die gewünschte Zeit aus.

  • %yÄnderung
  • %wSchaffung
  • %zändern

oder eine beliebige Kombination:

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

Wählen Sie außerdem aus, welche Informationen Sie benötigen, und verfassen Sie --printf=eine Zeile.

Oder Sie können einfach findden Befehl

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

verwandte Informationen