¿Es posible abrir un archivo desde el terminal no por su nombre sino por su posición (número) en la carpeta? ¿O alguna otra opción?
Porque el nombre es demasiado largo.
command-line
files
directory
si si
fuente
fuente

Tabtecla?Respuestas:
Probablemente aún no haya descubierto la Tabfinalización (ver aquí ).
Mientras escribe un nombre de archivo en la Terminal, simplemente escriba las primeras letras y presione Taby vea magia.
fuente
*, si no desea utilizar la finalización de tabulación por algún motivo. O incluso*abc*si el nombre de archivo contieneabcalgún lugar (intente usar un subpatrón que sea único para el nombre de archivo que desee). O simplemente copie / pegue el nombre del archivo con el mouse.Solo por diversión, literalmente respondiendo la pregunta:
Cómo funciona en la práctica
El contenido del directorio actual está listado, numerado. Elija el número y se abrirá el artículo:
Preparar
...es fácil:
Cierre sesión y vuelva a iniciarla y comience a usar el comando simplemente escribiendo
en terminal
nótese bien
Si también desea mostrar archivos ocultos, cambie
dentro:
fuente
~/binno está ya en su PATH, tendrá que añadirlo (por ejemplo, poner una línea comoexport PATH="$PATH:~/bin"en.bashrco.profile.)source ~/.profile.~/binno está integrado en nada en absoluto. Ubuntu y Debian se envían con una costumbre~/.profileque tiene líneasif [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" ; fi. En Mac OS X y CentOS, debe configurarlo usted mismo. Una buena posibilidad es que si Ubuntu es proporcionado a una persona por el departamento de TI, es probable~/.profileque no sea lo mismo que Ubuntu predeterminado, por lo que es una buena práctica tener siempre en cuenta que~/binno es estándar. Bash también puede ignorar~/.profilesi inicia el shell con la--no-profileopciónHay una característica poco conocida en Bash que le permite hacer esto sin recurrir a Python o cualquier otra herramienta de terceros, y con una sola línea:
fuente
opensin embargo, normalmente no funcionará (a menos que esté en Mac OS);xdg-openprobablemente hará el truco en la mayoría de los sistemas GNU / Linux.En puro bash, usando la
selectdeclaración:Configurar PS3 es simplemente llamativo. Si lo deja fuera, solo obtendrá el mensaje predeterminado. Si omite la instrucción break, la instrucción select se repetirá hasta que presione CTRL-D o CTRL-C.
Por supuesto, también puede ejecutarlo como una línea:
fuente
Puede instalar y usar
mcMidnight Commander. Es una interfaz de usuario de texto con menús, etc., inspirada en el antiguo Norton Commander, que era popular cuando la gente usaba MSDOS (antes de Windows).e iniciarlo en una ventana de terminal o en una pantalla de texto,
fuente
$ lsQue tal si
ls | sed -n 3pImprime el tercer nombre de archivo
TemplatesAbrelo-
xdg-open "$(ls | sed -n 3p)"Por lo general funciona.
Ponlo en un script
Nombre del script: abierto
Guárdelo en la carpeta de inicio. Correr:
fuente
lsls(y qué hacer en su lugar)?En los sistemas de archivos de Linux, los nombres de archivo tienen una propiedad muy interesante llamada inodo : un directorio (o carpeta) es una lista de inodes y qué nombres de archivo apuntan a esos inodes. Entonces, si conoce el número de inodo, puede intentar localizar el archivo usando la
findutilidad y realizar ciertas operaciones en él. Esto es especialmente útil cuando se trata de nombres de archivos en diferentes configuraciones regionales, caracteres especiales o cuando crea accidentalmente un directorio llamado~.Por ejemplo,
Lo que esto hace es atravesar el directorio de trabajo actual (representado por
.) y buscar la entrada del directorio que es un archivo con el número de inodo 1103743. Si se encuentra el archivo,xdg-opense abrirá el archivo con la aplicación predeterminada y sefindcerrará después. La razón para el extra-andy-quites para evitarxdg-openvolver a abrir el archivo si existen enlaces duros del archivo (que es equivalente a abrir el mismo archivo dos veces).fuente
Crea algunos archivos:
Coloque los archivos en una variable y abra el archivo por un índice.
Reemplace
12con el índice que está intentando abrir.fuente
Esta es probablemente la respuesta más simple que responde directamente a la pregunta. prueba lo siguiente:
Digamos que queremos abrir (o editar) el segundo archivo, podemos hacer lo siguiente:
esto generará el nombre del segundo archivo, que podemos usar como entrada para el comando que queremos realizar, por ejemplo:
generará el contenido del segundo archivo.
[ACTUALIZACIÓN] esto supone que no tiene espacios en blanco en los nombres de archivo,
gracias @wjandrea por su observación.
fuente
ls. También los backticks están en desuso. Usar en su$()lugar.