我需要找到文件的位置。我不想搜索整个系统,我知道我要查找的文件位于与某个软件包相关的目录中。
所以我想在命令find dir -name "filename" > find.out
返回的每个目录上执行dpkg -L package_name
。
我该怎么做?我认为管道和xargs
会有用,但我不知道如何告诉xargs
成为find
命令中的查找目录。
答案 0 :(得分:3)
find $(dpkg -L package_name) -name "filename" > find.out
答案 1 :(得分:2)
你可以这样做:
#!/bin/bash
readarray -t DIRS < <(exec dpkg -L package_name) ## Store file list to an array.
find "${DIRS[@]}" -name "filename" > find.out ## Search all at once.
使用
运行bash script.sh
或者也许只用一行来做:
readarray -t DIRS < <(exec dpkg -L package_name); find "${DIRS[@]}" -name "filename" > find.out