Я использую код ниже, чтобы найти самый старый файл в каталоге:
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
?Или, если папка пуста, просто пропустите ее полностью?
Я пытался исключить ее с помощью:
! -name 'Icon'
-not -path dir
-type d \( ! -name dir \)
-mindepth 1 -maxdepth 1
Попытался выяснить, является ли 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
, так как ничего из вышеперечисленного не сработало.
Любая помощь будет высоко ценится.