如何从 ls -la (ll) 列表中仅获取文件名?

如何从 ls -la (ll) 列表中仅获取文件名?

我需要一个目录中所有文件的所有文件名的长(垂直)列表。

如何从ls -la( ll) 列表中仅获取文件名?

只有名字,不是

drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename1
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename2
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename3
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename4
drwxr-xr-x 9 USER GROUP  4096 Jul 20 10:30 filename5

相反,我只需要:

filename1
filename2
filename3
filename4
filename5

答案1

仅打印文件名是ls.当您添加时,-l您是在说您想要“长格式”输出。如果你只是删除-l我认为这会给你你想要的。您可以保留-a包含“隐藏”文件

另外,正如 Stéphane 提到的,-1如果您仍然希望每个文件都在自己的行上,那么您可以添加-1,当重定向到文件或通过管道传输到另一个命令时,无论有或没有,都会发生这种情况。

如果要将其保存到文件中,可以像任何命令一样使用>或运算符。>>重定向shell 的控制和重定向运算符是什么?

答案2

>您可以使用或将输出直接重定向到文件>>

例如,ls -l > somefile.txt将创建一个名为 的文件,somefile.txt其中包含ls -l.但要小心,因为单身人士>覆盖您重定向到的文件中的所有内容。使用>>意志附加输出到您选择写入的文件。

编辑: ls -1 >> somefile.txt可能是您正在寻找的命令。为了全部文件,ls -1a >> somefile.txt.

答案3

将 ls 输出通过管道传输到 cat 似乎可以在我的 bash (Konsole) shell 中工作。这是我的系统的输出。

$ ls | cat
bin
boot
cdrom
dev
etc
home
initrd.img
initrd.img.old
lib
lib32
lib64
libx32
lost+found
media
mnt
opt
proc
root
run
sbin
snap
srv
sys
tmp
usr
var
vmlinuz
vmlinuz.old
$ 

ls -1命令在输出中保留彩色文本,而上面基于 cat 的命令会丢失颜色。

相关内容