如何让ls命令输出带完整路径的1033字节文件信息?
解决方法
当然可行,推荐两种方式实现:
方法1:用find直接查找(更高效准确)
直接使用find命令定位目标文件,它会自动输出完整路径和详细属性:
find . -size 1033c -ls
参数说明:
.表示从当前目录开始搜索-size 1033c指定查找大小为1033字节的文件(c代表字节)-ls以类似ls -l的格式输出文件信息
方法2:处理ls -lRA的输出
如果一定要基于ls -lRA的结果处理,可以用awk跟踪当前目录,拼接出完整路径:
ls -lRA | awk '/^\/|^\./ {dir=$0; sub(/:$/, "", dir)} /1033/ {print $0 " " dir "/" $9}'
原理是先捕获输出中的目录行(比如./directory1:),去掉末尾的冒号保存为当前目录;当匹配到包含1033的文件行时,把目录和文件名拼接后输出。
原来用ls -lRA | grep 1033只能拿到文件行,是因为ls -lRA的文件条目不会自带路径,路径信息只在上方的目录行里,所以需要额外处理才能关联起来。
内容的提问来源于stack exchange,提问作者Miguel Fernández
相关产品推荐
相关产品推荐

