Por que o uso de *(1)*
remove tudo de um diretório? Então como selecionar todos os arquivos que tem (1)
no meio do nome?
O comando usado é rm *(1)*
ou rm -rf *(1)*
(não lembro exatamente). Era o shell padrão do Ubuntu.
Por que o uso de *(1)*
remove tudo de um diretório? Então como selecionar todos os arquivos que tem (1)
no meio do nome?
O comando usado é rm *(1)*
ou rm -rf *(1)*
(não lembro exatamente). Era o shell padrão do Ubuntu.
Se você tiver globs estendidos no estilo ksh ativados, por exemplo, com
extglob
definido no Bash, o padrão*(1)*
realmente corresponde a qualquer nome de arquivo. A*(...)
sintaxe corresponde a zero ou mais cópias da parte entre parênteses, portanto, quaisquer iniciais, se houver. E então o*
combina com o resto.Se você estivesse usando um shell do tipo POSIX sem globs estendidos, isso seria um erro, pois o
(
operador não se encaixa na sintaxe.No zsh por padrão, acho que é o mesmo que
*1*
, ou seja, os parênteses funcionam apenas para agrupamento. Embora se você tiver akshglob
opção de shell definida, ela usará regras ksh.Acho que as versões recentes do Ubuntu definidas
extglob
no Bash por padrão em shells interativos.Para corresponder arquivos com uma
(1)
parte literal no meio, cite ou escape essa parte ou pelo menos os parênteses: ou*\(1\)*
, ou*"(1)"*
.