Qual é o significado do seguinte ls
comando?
ls -l *\:2,*T
ls
= list-l
= longo (lista)*T
provavelmente significaT
no final
Mas *\:2
e a vírgula?
*\:2,*T
é o padrão global de arquivos a serem listados. Para entender, precisamos lembrar de algumas coisas:
:
tem que ser escapado na concha, tornando-se \:
Por *\:2,*T
exemplo, corresponderia a um arquivo chamadoTranscationNumber:2,EventType:XYT
EDITAR
A partir dos comentários, a necessidade (ou não) de escapar das :
necessidades precisa de algumas palavras: não é estritamente necessário escapar do :
sinal, mas o próprio bash sugere quando o preenchimento automático.
:
preciso escapar?:
não precisa ser escapado. É especial apenas em circunstâncias específicas (quando usado como um comando), não em padrões glob. O\:
equivalente a:
, escapar não faz diferença.unset var; : ${var:=x}; echo $var
:
fazem parte dos valores padrão daCOMP_WORDBREAKS
variável de ambiente. No preenchimento automático do Bash, esses caracteres são usados como separadores de palavras pela biblioteca de linhas de leitura e um nome de arquivo contendo dois pontos deve, obviamente, ser uma única palavra. Daí a razão pela qual o preenchimento automático do bash exige que o cólon seja escapado, embora, caso contrário, "não seja" principalmente um caractere especial ...Listar todos os arquivos que correspondem ao padrão curinga
*:2,*T
Lá, o curinga
*
corresponde a qualquer coisa (qualquer número de todos os caracteres possíveis):2,
são caracteres que precisam estar presentes nos nomes de arquivo / diretório.O cólon
:
é um caractere especial que precisa ser escapado, daí a forma de\:2,
.Os nomes de arquivo / diretório precisam terminar com a
T
.Os nomes de arquivos que corresponderiam seriam
fonte
COMP_WORDBREAK
valores de ambiente que são definidos por padrão. - Portanto, não é realmente um caractere especial, mas quando você usa o preenchimento automático na linha de comando e deseja / precisa corresponder nomes de arquivos com dois pontos, ele precisa ser escapado.Como outros observaram, isso listará em formato longo, arquivos contendo
:2
e terminando emT
Parece uma pesquisa em uma pasta do Maildir para arquivos que foram excluídos (lixeira). No entanto, por robustez, deveria ter tido outro
*
no final. Novos sinalizadores com uma posição alfabética posterior podem ser adicionados, e o Dovecot, por exemplo, adiciona outro campo com o tamanho do arquivo no final.fonte