如何在Linux中获取文件名

发布时间:2023-05-20

一、使用ls命令获取文件名列表

$ ls
file1.txt file2.jpg file3.pdf

使用ls命令可以在当前目录下获取所有文件名列表。如果需要在其他目录下获取文件名列表,可以在ls命令后面加上目录路径。

二、使用find命令查找文件名

$ find /home/user -name 'file*.txt'
/home/user/file1.txt
/home/user/file2.txt
/home/user/file3.txt

使用find命令可以在指定目录及其子目录下查找符合条件的文件名。其中,-name选项后面跟上需查找的文件名,可以使用通配符实现模糊查找。

三、使用grep命令查找包含指定字符串的文件名

$ grep -rl 'keyword' /path/to/directory/
file1.txt
file2.txt
file3.txt

使用grep命令可以在指定目录及其子目录下查找包含指定字符串的文件名。其中,-r选项表示递归查找,-l选项表示只返回文件名而非匹配的内容。

四、使用basename命令获取文件名

$ realpath file1.txt
/path/to/file1.txt
$ basename /path/to/file1.txt
file1.txt

使用basename命令可以从文件的绝对路径中获取文件名。如果需要从符号链接中获取文件名,可以先使用realpath命令得到真实路径。

五、使用awk命令处理文件名

$ ls | awk '{print "the filename is: " $0}'
the filename is: file1.txt
the filename is: file2.txt
the filename is: file3.txt

使用awk命令可以对获取的文件名进行处理。其中,$0表示整个文本行,可以根据需要添加其他的处理代码。