Назад | Перейти на главную страницу

исключить все скрытые файлы и каталоги в Solaris

Новичку в Unix может пригодиться ваша помощь.

Я использую Solaris 10, и мне нужно найти все файлы, за исключением всех скрытых файлов и каталогов. Конечная цель - поместить это в скрипт, который будет удалять на сервере файлы старше 60 дней.

Я попытался:

найти . ! (-name '. *' -prune)

но он вообще не находит файлов.

Любые предложения приветствуются.

Я считаю, что проблема в том, что вы исключаете все, что называется ". *", И начинаете поиск с "." (что соответствует вашему исключению), поэтому вы исключаете все. Кроме того, я считаю, что вы неправильно используете -prune флаг (это действие, например -print, и поэтому не обязательно полезен как часть отрицательного выражения). Попробуй это:

find . \( -name '.*' \! -name '.' -prune \) -o -print

Это явно включает "." в поиске, а затем исключает все остальное, что соответствует .*. Если вы знаете, что ваша отправная точка не включает файлы точек, вы можете немного упростить это:

find * \( -name '.*' -prune \) -o -print

нужно найти все файлы, исключая все скрытые (файлы и каталоги).

найти . -name '[^.] *'

исключая все (скрытые файлы) и каталоги.

найти . -type f -name '[^.] *'

Конечная цель - поместить это в скрипт, который будет удалять файлы на сервере старше 60 дней.

найти . -name '[^.] *' -mtime +59 | xargs rm -f

Это должно работать:

find * | grep -v /\\.