
Alguma ideia de por que existem resultados diferentes. Alguns dos quais são enganosos
-bash-4.2$ mkdir -p new_dir/sub_dir/under_dir
-bash-4.2$ touch new_dir/sub_dir/under_dir/file.txt
-bash-4.2$
-bash-4.2$ ls -rlt
total 4
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 new_dir
-bash-4.2$
-bash-4.2$
-bash-4.2$ ls -rlt *
total 4
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 sub_dir
-bash-4.2$
-bash-4.2$
-bash-4.2$
-bash-4.2$ ls -rltd
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 .
-bash-4.2$
-bash-4.2$
-bash-4.2$ ls -rltd *
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 new_dir
-bash-4.2$
-bash-4.2$
-bash-4.2$
-bash-4.2$ ls -rtlR
.:
total 4
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 new_dir
./new_dir:
total 4
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 sub_dir
./new_dir/sub_dir:
total 4
drwxrwxr-x 2 kony kony 4096 Oct 21 20:53 under_dir
./new_dir/sub_dir/under_dir:
total 0
-rw-rw-r-- 1 kony kony 0 Oct 21 20:53 file.txt
-bash-4.2$
-bash-4.2$
-bash-4.2$
-bash-4.2$
-bash-4.2$ ls -rltR *
new_dir:
total 4
drwxrwxr-x 3 kony kony 4096 Oct 21 20:53 sub_dir
new_dir/sub_dir:
total 4
drwxrwxr-x 2 kony kony 4096 Oct 21 20:53 under_dir
new_dir/sub_dir/under_dir:
total 0
-rw-rw-r-- 1 kony kony 0 Oct 21 20:53 file.txt
-bash-4.2$
Responder1
Não sei qual resultado você esperava nem o que é enganoso para você. Você obteve resultados diferentes porque forneceu entradas diferentes a cada vez.
Fatos relevantes:
ls
sem operandos funciona como se o único operando fosse.
. Observe-rltd
que são opções, não operandos.- Normalmente, se o operando for um diretório,
ls
imprimirá as entradas do diretório. Este é um tratamento especial porque na maioria dos casos (se o operando for um arquivo normal, arquivo especial, fifo,…)ls
apenas imprime informações sobre o operando. -d
desativa esse comportamento especial para diretórios.-R
fazls
listar recursivamente os subdiretórios encontrados.*
nos seus exemplos foi expandido pelo seu shell antesls
mesmo de ser iniciado.*
expande para todas as entradas no diretório de trabalho atual com nomes que não começam com.
. Aparentemente, no seu caso, havia apenas uma entrada correspondente no diretório atual:new_dir
.
Estes são os comandos que você digitou, reuni-os para facilitar a leitura:
ls -rlt
ls -rlt *
ls -rltd
ls -rltd *
ls -rltR
ls -rltR *
Isto é o que você realmente executa, após a expansão pelo shell; respectivamente:
ls -rlt
ls -rlt new_dir
ls -rltd
ls -rltd new_dir
ls -rltR
ls -rltR new_dir
Estes são comandos equivalentes com operandos explícitos; respectivamente:
ls -rlt .
ls -rlt new_dir
ls -rltd .
ls -rltd new_dir
ls -rltR .
ls -rltR new_dir
E estas são consultas descritivas (opções comuns -rlt
não explicadas, porque entendo que não são o problema):
ls -rlt .
- o que esta dentro.
?ls -rlt new_dir
- o que esta dentronew_dir
?ls -rltd .
- o que é.
?ls -rltd new_dir
- o que énew_dir
?ls -rltR .
– o que está dentro.
e cada subdiretório encontrado?ls -rltR new_dir
– o que está dentronew_dir
e cada subdiretório encontrado?
Você obteve respostas para essas perguntas. As perguntas são diferentes, assim como as respostas.