我有大量的文件(约50000个文件)。
ls /主页/abc/定义/
file1.txt
file2.txt
file3.txt
.........
.........
file50000.txt
我想创建一个包含两列的CSV文件:第一列提供文件名,第二列提供绝对文件路径,如下所示:
output.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
如何使用bash命令来完成此操作。我尝试使用ls和find as
find /home/abc/def/ -type f -exec ls -ld {} \; | awk '{ print $5, $9 }' > output.csv
但这给了我绝对路径。如何得到上面output.csv中所示的输出
4条答案
按热度按时间kjthegm61#
您可以使用GNU
find
的-printf
选项获得文件名和完整路径:如果要排序结果,请使用管道通过
sort
。yacmzcpb2#
怎么样:
根据需要将适当的开关添加到
find
。icnyk63a3#
如果你想完全规范化所有现有的路径,包括修复重复的
/
和解析符号链接到它们的物理,为什么不njthzxwz4#
普通
bash
:或者,