Todas as respostas até agora (assim como seu exemplo na pergunta) assumem que você deseja touch
all no diretório, mesmo que tenha dito "tocar todas as pastas". Se o diretório contiver arquivos e pastas e você quiser apenas atualizar as pastas, use find
:
$ find . -maxdepth 1 -mindepth 1 -type d -exec touch {} +
Ou se a implementação de find
não der suporte aos predicados não padrão de -mindepth
/ -maxdepth
:
$ find . ! -name . -prune -type d -exec touch {} +
Isto:
$ touch -c -- */
Deve funcionar na maioria dos shells, exceto que:
- também serão
touch
links simbólicos para diretórios além de diretórios simples - omitirá os ocultos
- se não houver diretório ou link simbólico para o diretório, ele criaria um arquivo chamado
*
em shells diferentes decsh
,tcsh
,zsh
,fish
ou o shell Thompson (que relataria um erro em vez de). Aqui, estamos usando-c
para contornar isso, embora isso ainda possa sertouch
de um arquivo não-diretório chamado*
.
Apenas com zsh
, para touch
diretórios, incluindo os ocultos:
touch -- *(D/)