Linux

linux 相當於 dir /b /s /a:-D (遞歸列印所有文件的完整路徑)

  • June 29, 2018

我今天剛遷移到 linux,我想知道如何使用 ls 命令來做到這一點(你最擅長的是什麼)。這個想法是獲取目錄中具有完整路徑的所有文件,包括子目錄……我使用的 cmd 命令是:

dir /b /s /a:-D

據我所知,您的命令dir下降/S子目錄(/B``/A:-D

在 Linux 中執行此操作的可移植方式是通過find命令 - 預設情況下它會下降到子目錄,並且可以通過添加-not -type d(!可以用作 的同義詞-not)來省略目錄

預設情況下,它報告相對於起點的路徑,因此要獲取絕對路徑,您可以使用 shell 的目前工作目錄變數PWD

find "$PWD" -not -type d

如果您使用的 shell 支持遞歸模式匹配(又名“globstar”)和 glob 限定符,還有其他選項 -zsh例如,您可以這樣做

ls -1d **/*(^D:A)

或者乾脆

printf '%s\n' **/*(^D:A)

您可能還需要考慮您是否真的想要“不是目錄”或“普通文件”:

find "$PWD" -type f

或 (zsh)

printf '%s\n' **/*(.:A)

引用自:https://unix.stackexchange.com/questions/452546