В:
find * ...
в качестве командной строки оболочки, *
представляет собой глобус, который расширяется оболочкой до (лексически отсортированного) списка не скрытых записей в текущем каталоге (с некоторыми оболочками , это будут только записи, содержащие только допустимые символы, такие как *
, поскольку шаблон означает 0 или более символов ).
Итак, если текущий каталог содержит эти записи:
.
..
.htaccess
file.txt
-foo-
find
будет вызываться со следующими аргументами: find
, -foo-
, file.txt
(и ...
). find
, скорее всего, будет жаловаться на то, что -foo-
является недопустимой опцией или предикатом.
Даже если вы используете:
find -- * ...
Это не будет работать должным образом для файлов с именами -anything
или !
или (
... как -
только сообщает find
, чтобы прекратить поиск параметров (например, -L
, ] -H
) не для предикатов.
Вы можете использовать:
find ./* ...
, чтобы избежать проблем, но опять же, это опускает скрытые файлы, может пропускать файлы с недопустимыми символами или прерывать (с arg list too long ), если в текущем каталоге много файлов.
With:
find . ...
Вы передаете только .
в find
. .
- это текущий каталог. Тогда это find
, а не оболочка, которая будет искать в нем файлы (включая .
на глубине 0, все записи, кроме .
и ..
(включая другие скрытые записи) на глубине 1, а все остальные записи для подкаталогов (все еще исключая .
и ..
) рекурсивно.
Вам нужно использовать только:
find ./* ...
Если вы хотите, чтобы список файлов на глубине 1 (и только на глубине 1) был отсортирован, и хотите исключить скрытые файлы на глубине 1 (и снова только на глубине 1) . Что было бы очень маловероятно.
Если вы хотите исключить скрытые файлы, добавьте ! -name '. *'
Или -name '[!.] *'
(но будьте осторожны с именами файлов с недопустимыми символами, и это также будет включать каталог верхнего уровня, заданный для find
.
, что соответствует этому шаблону).
Если вам нужна сортировка на каждом уровне, вы, вероятно, захотите прибегнуть к zsh
и его рекурсивному подстановке с квалификаторами glob.
Причина, по которой вы получаете разные результаты, скорее всего, заключается в том, что в find *
поиск начинается с поиска (получает указание искать) в первом файле или каталоге в текущем каталоге в в алфавитном порядке , а с найти.
, он смотрит на .
, но затем первый файл или каталог в нем в другом порядке (это может быть порядок, в котором записи хранятся в каталоге, но некоторые реализации find
также сортируют список по номеру inode как попытка свести к минимуму диск головки ищет).
Кстати, лучше всего написать команду:
find . \( -name @eaDir -o -iname .DS_Store -o -iname Thumbs.db \) \
-prune -o -mtime -25 -type f -print
То есть указать find
, чтобы он полностью игнорировал эти каталоги и их содержимое (даже не пытаясь заглянуть внутрь них).
Вы можете удалить USB-накопитель clonezilla, только если вы выбрали Clonezilla live (в ОЗУ. Загрузочный носитель можно удалить позже)
в меню загрузки в разделе Другие режимы Clonezilla live
.