В моем каталоге ~ / docs я хочу "коснуться" всех файлов, заканчивающихся на .txt
Как я могу это сделать?
С find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
Вариант будет соответствовать всем txt
файлам - exec
выполнит команду touch
на имя файла, который замещен в{}
\;
завершает команду и touch
будет вызываться один раз для каждого найденного файлаЗамечания:
\+
в конце создается одна команда для одновременного запуска touch
всех этих файлов. Это невозможно со всеми командами, но оно работает touch
и экономит вам несколько вызовов, если у вас много файлов, на которые влияют.
{} \+
было бы лучше здесь ...touch
может обрабатывать много имен файлов в своей командной строке, так, например, с 10 тысячами файлов и{} \;
10 тысяч вызовов будет сделано дляtouch
... Использование{} \+
будет вызыватьtouch
только один раз (в зависимости от доступной памяти) ... Здесь отрывок из ФАЙНДА людей-страницы:-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Более подробно вman find
документации.