在linux中创建带有文件绝对路径的文件列表

mik*_*ike 1 unix bash awk

我有大量文件(约 50000 个文件)。

ls /home/abc/def/

file1.txt
file2.txt
file3.txt
.........
.........
file50000.txt
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含两列的 CSV 文件:第一列提供文件名,第二列提供绝对文件路径,如下所示:

输出.csv

file1.txt,/home/abc/def/file1.txt
file2.txt,/home/abc/def/file2.txt
file3.txt,/home/abc/def/file3.txt
.........................
.........................
file50000.txt,/home/abc/def/file50000.txt
Run Code Online (Sandbox Code Playgroud)

如何使用 bash 命令执行此操作。我尝试使用 ls 并找到

find /home/abc/def/ -type f -exec ls -ld {} \; | awk '{ print $5, $9 }' > output.csv
Run Code Online (Sandbox Code Playgroud)

但这给了我绝对路径。如何获得如上面的output.csv所示的输出

Sha*_*awn 5

find您可以使用 GNU的选项获取文件名和完整路径-printf:

find /home/abc/def -type f -printf "%f,%p\n"
Run Code Online (Sandbox Code Playgroud)

sort如果您想要排序结果,请通过管道。