Я нашел решение:
Сначала я запустил:
echo -e "deb http://http.kali.org/kali sana main non-free contrib\ndeb http://security.kali.org/kali-security/ sana/updates main contrib non-free" > /etc/apt/sources.list
, а затем
apt-get update
apt-get update --fix-missing
, оно прямо здесь: Проблема с установкой Tor в Kali Linux
Спасибо!
Si bien la bandera -d
evita que ls
descienda a los directorios, eso es exactamente lo que hace. No significa listar solo directorios. Hay una diferencia sutil entre estas dos declaraciones en que si ejecuta ls -d some_file
, entonces ls
le mostrará some_file
. Dado que está utilizando shell globbing (./*
), este glob se expande para incluir los archivos en el directorio actual, así como los directorios en el directorio actual. Dado que el shell es lo que realiza el globbing y la expansión, y no ls
, ls
recibe una lista de archivos.
Para evitar esto, debe asegurarse de que el shell global no incluya archivos normales. Puede hacer esto usando un /
final en el globo. Dado que /
es un carácter especial prohibido en los nombres de archivo, pero que denota la separación entre directorios, puede usarlo para hacer coincidir solo directorios.
Entonces, por ejemplo:
ls -d */
Esto puede depender de su shell.
los shells compatibles con POSIX más modernos enumeran solo directorios si agrega una barra inclinada a la estrella:
echo */
Así que si llamas:
ls -l */
obtiene el tipo de listado que espera.
Si no le gusta ver el contenido de los directorios llame al:
ls -ld */
Básicamente, mi confusión era por qué ls -ld./*
no devolvía solo los directorios. El argumento ls espera un directorio para el que desea enumerar. Y dado que el argumento */
fue evaluado por shell para todos los archivos y directorios (debido al comodín ); todo se enumeró, incluidos los archivos en el directorio sub -. La solución sugerida por muchos de ustedes fue ls -ld */
; el comodín aquí se expandió solo a directorios y excluyó los archivos.