Оболочка: Не индексировать папки Значок при выполнении `найти` / Пропустить пустые папки - PullRequest
0 голосов
/ 30 апреля 2019

Я использую код ниже, чтобы найти самый старый файл в каталоге:

find /Volumes/Hams\ Hall\ Workspace/Tabletop\ 7_WIP -type f ! -name '.DS_Store' ! -name '.uid' ! -name 'Thumbs.db' \( ! -regex '.*/\..*' \) -print0 | xargs -0 ls -lUr | head -n 1 >> ~/Desktop/test.csv 

Это работает большую часть времени.Хотя, если каталог пуст и имеет пользовательский значок, он индексирует значок и выводит его, как если бы это был самый старый файл.Хотя, если каталог не пустой, он будет работать как обычно.

Как бы вы пропустили Icon?Или, если папка пуста, просто пропустите ее полностью?

Я пытался исключить ее с помощью:

  1. ! -name 'Icon'
  2. -not -path dir
  3. -type d \( ! -name dir \)
  4. -mindepth 1 -maxdepth 1
  5. Попытался выяснить, является ли Icon file или directory с -f и -d.Оба вывода, что Icon не существует.И все же Icon все еще отображается в журнале.

    if [[ -f /Volumes/Hams\ Hall\ Workspace/Tabletop\ 7_WIP/Icon ]] then echo the file exists > ~/Desktop/xxx.csv else echo the file does not exist >> ~/Desktop/xxx.csv fi

Либо у меня где-то есть ошибка синтаксиса, либо что-то идет не так после find, так как ничего из вышеперечисленного не сработало.

enter image description here

Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...