W moim katalogu ~ / docs chcę „dotknąć” wszystkich plików z rozszerzeniem .txt
W jaki sposób mogę to zrobić?
Z find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
Opcja pasuje do wszystkich txt
plików - exec
wykona polecenie touch
o nazwie pliku, który jest podstawiony w{}
\;
kończy polecenie i touch
zostanie wywołany raz dla każdego znalezionego plikuUwaga:
\+
na końcu konstruuje jedno polecenie do uruchomienia touch
na wszystkich tych plikach jednocześnie. Nie jest to możliwe w przypadku wszystkich poleceń, ale działa touch
i oszczędza kilka połączeń, jeśli masz wiele plików, których to dotyczy.
{} \+
byłoby lepiej tutaj ...touch
może obsłużyć wiele nazw plików w wierszu poleceń, więc na przykład z 10 tysiącami plików i{} \;
10 tysiącami wywoła siętouch
... Używanie{} \+
będzie wywoływaćtouch
tylko raz (w zależności od dostępnej pamięci) ... Tutaj jest fragmentem znaleźć za roboczogodzinę stronie:-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
.man find
Dokumentacja zawiera więcej szczegółów .