Linux
關於 Gnu/Linux 命令行界面的問題,使用 grep、ls 和 cat
問候堆棧交換,
我的目標:執行
ls
搜尋整個目錄結構並grep
蒐索cats.py
. 用於cat
讀取文件cats.py
。我知道這聽起來像是 Gnu/Linux inception。我目前是 Stack Exchange 的新手,
bash
也不太熟悉 Stack Exchange,所以如果它的格式非常糟糕,請原諒我。我執行以下
ls -R -l -t -r | grep cats
這將返回以下rw-r--r-- 1 user user 2179 Mar 18 08:53 cats.py
我嘗試使用 cat 來讀取上面返回的文件,但是我遇到瞭如何為 grep 命令的結果分配佔位符的問題,這是我嘗試過的結果。
ls -R -l -t -r | grep cats | cat cats.py cat: cats.py: No such file or directory
我認為問題在於我執行 cat 函式的方式應該如下所示:
ls -R -l -t -r | grep cats | cat '{}'
或者
ls -R -l -t -r | grep cats && cat cats.py
使用
find
命令。它可以找到該文件,並在其上執行命令。ls
有問題,特別是如果-l
給出了選項,那麼你有比你需要的更多的數據(文件模式,日期,所有者,…)。即(替換«»中的位)
find «directory» -name '«file-name-glob-pattern»' -exec «command» {} \;
例如
find . -name 'cats.py' -exec cat {} \;
find 命令會更合適:
find . -name 'cats.py' -exec cat {} \;