我正在尝试编写一个格式为“id file_absolute_path”的文件,该文件基本上在文件夹中递归列出所有文件,并为列出的每个文件提供一个标识符,如1,2,3,4。
我可以使用以下命令递归获取文件的绝对路径:
ls -d -1 $PWD/**/*/*
但是,我无法从ls命令的输出中提供标识符。我确信这可以使用awk完成,但似乎无法解决它。
答案 0 :(得分:15)
通过cat -n
管道输出。
答案 1 :(得分:7)
假设x
是你的命令:
x | awk '{print NR, $0}'
将对输出行进行编号
答案 2 :(得分:5)
两个可能的命令:
ls -d -1 $PWD/**/*/* | cat -n
ls -d -1 $PWD/**/*/* | nl
nl将数字放到文件行中。
我希望这也澄清了。
答案 3 :(得分:2)
有一个名为nl的工具。
ls -la | NL
答案 4 :(得分:1)
如果你ls -i
,你会得到一个非常棒的inode号码。
使用inode的唯一潜在问题是,如果您的文件夹跨越多个文件系统,因为inode只能保证在文件系统中是唯一的。
答案 5 :(得分:0)
ls -d -1 $ PWD / ** / / | awk'{x = x + 1} {print x“”$ 0}'