仅使用 1 个命令行,我该如何编写一个命令来列出存储/文件目录中的所有文件的长列表,并将输出通过管道传输到查找包含单词 pizza 的所有项目的 grep 命令?
会是这个吗?
ls -l /storage/file | grep pizza
答案1
干得好:
grep -l pizza /storage/file/*
/storage/file/
这将打印出包含单词 pizza 的所有文件的名称。
如果您想要这些文件的长列表,您可以执行以下任一操作:
ls -l $(grep -l pizza /storage/file/*)
grep -l pizza /storage/file/* | xargs ls -l
答案2
总有你的朋友find
命令。
find /storage/file -name '*pizza*' -exec ls -l {} \;
请注意名称周围的单引号,以防止 shell 过早扩展 glob。此格式的优点是可以轻松适应查找上述文件:
find /storage/file -name '*pizza*' -exec grep cheese {} \;
这将查找文件名中带有 pizza 的所有文件,然后显示所有提到 cheese 的地方。
或者你的意思是只找到目录中所有关于披萨的文件然后将它们列成长列表?
ls -l $(grep -l pizza /storage/file/*)