Які параметри мені потрібно використовувати findдля виключення прихованих файлів?
.hidden/visible.txt?
Які параметри мені потрібно використовувати findдля виключення прихованих файлів?
.hidden/visible.txt?
Відповіді:
Я знайшов це тут :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)?
\( ! -path '*/.*' \)б.
Це не відповідає на ваше запитання, але для завдання пошуку не прихованих файлів мені подобається знайти знайти всі файли, а потім відфільтрувати за допомогою грепа.
find . -type f | grep -v '/\.'
Схожий на ваш підхід, але, можливо, трохи простіше.
Я написав сценарій, за findnhяким я вважаю, що вирішує певні кращі випадки краще, ніж відповіді на це питання, які мені вдалося знайти в Інтернеті.
#!/bin/bash
declare -a paths
while [ $# -ne 0 ]; do
case "$1" in -*) break ;; esac
paths+=("$1")
shift
done
find "${paths[@]}" \( -name . -o -name .. -o \! \( -name '.*' -prune \) \) "$@"
Наприклад, ви можете знайти не приховані файли та каталоги всередині явно вказаного прихованого каталогу з такою командою findnh ~/.hiddendir/, яка буде показувати, ~/.hiddendir/fileале ні ~/.hiddendir/.superhiddenfile.
findnh ~/.hiddendir/, нічого не отримую. Крім цього, чим це відрізняється від ! -path '*/.*'та find … | grep -v '/\.'?
fdВикористання fd, проста, набагато швидша та зручна для користувача альтернатива find. За замовчуванням це:
.gitignoreЗа замовчуванням ігнорує шаблони .Перевірте аналіз бенчмарка .
lsякщо спеціально не вимагається: вони є абсолютно звичайними файлами в будь-якому відношенні, саме цеlsдозволяє ігнорувати їх за замовчуванням.