use*_*637 7 command-line bash ls locate
当我运行该ls -l
命令时,我会获得有关当前目录中文件的详细信息,例如权限、所有者、组、文件大小。
有没有办法在运行时获得这些相同的详细信息,而不仅仅是文件的位置locate
?
该locate
数据库不包含其他的名称,所以你应该运行一些其他工具的信息,比如ls
,在locate
输出
lsloc() {
locate "$@" |
while read -r name; do
ls -ld "$name"
done
}
lsloc pattern
Run Code Online (Sandbox Code Playgroud)
小智 5
将locate
to的输出通过管道传输xargs
(ls -l
作为参数添加到xargs
)。这使您可以使用任一命令所需的任何选项。通过同时将-0
(破折号零)选项传递给这两个命令,您还可以防止对文件名中的空格或换行符进行意外解释。例如,要获取我系统上所有 .iso 文件的详细信息:
locate -0 -r '.*.iso$' | xargs -0 ls -l
Run Code Online (Sandbox Code Playgroud)