Я хотів виконати сценарій, який вибирає довільний шлях до каталогу:
find / -type d | shuf -n1
На жаль, я отримую повідомлення про помилки щодо заборони входити до певних каталогів.
Як я можу виключити каталог із пошуку за допомогою пошуку?
Я хотів виконати сценарій, який вибирає довільний шлях до каталогу:
find / -type d | shuf -n1
На жаль, я отримую повідомлення про помилки щодо заборони входити до певних каталогів.
Як я можу виключити каталог із пошуку за допомогою пошуку?
Відповіді:
Щоб виключити конкретні шляхи, в Linux:
find / -path /sys -prune -o -path /proc -prune -o -type d
Інший підхід полягає в тому, щоб сказати find
не повторюватися в різних файлових системах.
find / -xdev -type d
Ви також можете використовувати locate для запиту бази даних імен файлів (зазвичай оновлюються щоночі, ви також можете оновити її вручну за допомогою updatedb
) замість живої системи.
locate '*' | shuf -n 1
find / -xdev -type d 2>/dev/null
.
find / \( -path /sys -o -path /proc \) -prune -o -type d
б корисно , якщо ви хочете , щоб виключити більш тек /dev
або /tmp
і т.д.
при пошуку GNU ви також можете скористатися параметрами регулярних виразів, наприклад, таким:
find / -regextype posix-extended -regex "/(sys|srv|proc)" -prune -o -type d