Іноді я бачу таку команду:
find . -name * -exec ls -a {} \;
Мене попросили виконати.
Що {} \;
тут означає?
-name *
гірше зайвого. Оскільки *
обоє не котирується, оболонка розширює його до списку імен файлів у поточній папці, при цьому помилки неправильно обробляються, що призводить до несподіваних результатів або повідомлення про помилку. В якості додаткового пункту, find
є багато функцій, одна з яких полягає у переліку файлів; це дозволяє уникнути використання -exec
. Наприклад, ви можете використовувати find . -print
або find . -ls
. Нарешті, є два шляхи , щоб уникнути коми: або , як ви зробили з зворотним косими рисами, \;
або процитувати: ';'
. Використовуйте те, що вам більше комфортно.
-name *
є зайвим.