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
将locateto的输出通过管道传输xargs(ls -l作为参数添加到xargs)。这使您可以使用任一命令所需的任何选项。通过同时将-0(破折号零)选项传递给这两个命令,您还可以防止对文件名中的空格或换行符进行意外解释。例如,要获取我系统上所有 .iso 文件的详细信息:
locate -0 -r '.*.iso$' | xargs -0 ls -l
Run Code Online (Sandbox Code Playgroud)