pretty code

2024年8月18日 星期日

每天都有新發現的 Linux

今天無意間看到一個 Youtube 推薦的駭客影片,雖然內容類似在解譯大陸牌子的網路攝影機 HTTPS 封包的內容,但在觀看的過程中,無意間發現作者使用了一個 "find ." 指令來列出現在目錄下的所有檔案,雖然我們可以用 ls -l 來印出檔案,但還需要再用 awk 取出檔名欄位,也無法列出子目錄的檔案,應該吧?

最近在整理別人的 code list 並加到 Synthesis TCL script 中,之前還傻傻的一個目錄一個目錄進去 ls,原來還有更快的方法,只要組合一堆指令,然後在根目錄打出這一串組合指令即可。

find . | sed -Ee 's/\.\/(.*)/\1/g' | awk -v var="$PWD" '{print var "/" $1}'

因為 "find ." 列出所有的檔案前面會包含 ".",雖然不影響結果,但看了就是不順眼XD

接著使用 sed 把 "." 去掉,最後再用之前這篇文章的做法,加上 $PWD 字串。


不得不承認 Linux 跟 vim 一樣,每天都能發現新玩意!

雖然我覺得一定還有其他做法,但等到下次發現新大陸時再說吧XD

2024/08/19 更新

原來用 "ls -1" 可以只列出檔案名稱並且 line by line 顯示。

所以我建了兩條 alias,一個配合 "ls -1",一個用 find 跨目錄搜尋。

因為用 alias 要跳脫,故把 fabs_name 簡化一下,不要把 "find ." 結果的 "/" 濾掉,將 "\/" 改放進括弧內 (\/.*) 也就是我們要取的 \1,這樣後面的 awk print 就可以簡化,不然很難懂XD


沒有留言: