Estoy tratando de enumerar cada .tar.gz
archivo, solo usando el siguiente comando:
ls *.tar.gz -l
... me muestra la siguiente lista:
-rw-rw-r-- 1 osm osm 949 Nov 27 16:17 file1.tar.gz
-rw-rw-r-- 1 osm osm 949 Nov 27 16:17 file2.tar.gz
Sin embargo, solo necesito enumerarlo de esta manera:
file1.tar.gz
file2.tar.gz
y tampoco:
file1.tar.gz file2.tar.gz
¿Cómo se hace esto "correctamente"?
ls -1 *.tar.gz
, Pero ¿qué es lo que desea utilizar la lista de ? Si está haciendo algo con esos nombres de archivo, entoncesls
no es la forma correcta de hacerlo. Ver ¿Por qué * no * analizar `ls` (y qué hacer en su lugar)?man ls
. Asegúrese de que la fuente de la pantalla tenga un buen contraste entre 1 (uno) y l (letra minúscula ell).Respuestas:
La
-1
opción (el dígito "uno", no la "L" minúscula) mostrará un archivo por línea sin otra información:fuente
ls -1 *.tar.gz
funciona igual de bien-
..hiddenfile
,benign.php
,evil.bin
,--hide=*evil*
, sin el--
no verásevil.bin
o--hide=*evil*
.-2
(o -3, etc.)! ;-)columns
!)Si solo necesita los nombres de archivo, puede usar
printf
:... el shell expandirá el
*.tar.gz
comodín a los nombres de archivo, luegoprintf
los imprimirá, con cada uno seguido de una nueva línea. Este resultado diferiría un poco del dels
los nombres de archivo con nuevas líneas incrustadas en ellos:preparar
ls
printf
fuente
ls -b
,ls -Q
, ls--quoting-style=...
.printf '%q\n'
. (Ambos GNU.)ls
se comporta de manera diferente cuando su salida se canaliza. Por ejemplo:Entonces, si desea ver todos sus
*.tar.gz
archivos, uno por línea, puede hacer esto:Pero, ¿y si no quieres canalizar tu salida? Es decir, ¿hay alguna forma de forzar la
ls
salida de los nombres de archivo uno a una línea sin canalizar la salida?Sí, con el
-1
interruptor. (Eso es un guión con el número 1.) Para que pueda usar estos comandos:fuente
O con
GNU find
:Al contrario que
ls
con*
él, buscará.tar.gz
archivos de forma recursiva:fuente
-printf '%P\n'
lugar de solo-print
, en qué punto funcionará cualquier compatible con Posixfind
.-print
se agregará./
antes del nombre del archivo.Una forma un poco más indirecta y en bucle :
EDITAR: citas agregadas para manejar nombres de archivos extraños
fuente
touch -- '-e \a.tar.gz'
por una razón para citar sus variables y unix.stackexchange.com/q/65803/117549 por razones para usar printf en lugar de echo-e \a.tar.gz
archivo resultanterm -- '-e \a.tar.gz'
debería hacer el truco--
funciona pararm
muchos otros.rm_etc './-x blah'