
在 Linux 中,是否有相當於Dir /s /a /b
列出完整路徑和檔案名稱的位置?我是 Linux 新手,沒有 GUI,我想了解硬碟上的結構。
答案1
使用find
命令。預設情況下,它將遞歸地列出從目前目錄開始的每個檔案和資料夾,以及完整(相對)路徑。
如果您想要完整路徑,請使用:
find "$PWD"
如果您想要相對路徑,請使用:
find .
這裡,$PWD
是一個包含目前工作目錄的變數。
一些選項:
- 如果您只想將其限制為文件或資料夾,請分別使用
find "$PWD" -type f
或find -type d
。 find "$PWD" -maxdepth 2
例如,如果您希望它停止在某個目錄深度,請使用。
讀尋找文件有關 GNU 的詳細手冊find
,GNU 是 Linux 上的預設設定。
答案2
我今天也有同樣的問題。我找到了一個名為「realpath」的指令,這是一個範例:
$ realpath ~/.bashrc
/home/harleygolfguy/.bashrc
答案3
Linux解決方案:
$ pwd
/home/victoria
$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2
$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2
筆記:
.
:目前資料夾- 刪除
-maxdepth 1
以遞歸搜尋 -type f
: 尋找文件,而不是目錄 (d
)-not -path '*/\.*'
: 不返回.hidden_files
sed 's/^\.\///g'
./
:從結果清單中刪除前綴
答案4
為了完整起見,該ls -lR /
命令將從根目錄列出每個檔案的名稱、檔案類型、檔案模式位元、硬連結數量、擁有者名稱、群組名稱、大小和時間戳記(您有權存取)目錄下來。 (l
用於長列表,即所有信息,R
是透過目錄遞歸,從/
檔案系統的根開始。)
有許多參數可以使輸出資訊更接近dir /S /A
,但我不得不承認我無法弄清楚如何翻譯/B
.
對於有用的信息,我會嘗試: ls -lAFGR --si /
在哪裡
- l = 長列表(如上所述)
- A = 幾乎所有檔案(不包括每個目錄中的 . 和 ..,但顯示所有隱藏檔案)
*
F = 顯示檔案指示器,( exe 檔案、/
目錄、@
符號連結、|
FIFO、=
套接字和>
閘之一)- G = 不顯示群組資訊(如果您想查看,請將其刪除)
- R = 遞歸列出目錄(子目錄)和
- --si = 以人類可讀的方式顯示檔案大小,例如 1M 格式(其中 1M = 1000B)
ls
可以提供更易於閱讀的目錄和這些目錄中的文件的概要,因為find
當文件包含在非常長的目錄結構(跨越多行)中時, 的輸出可能很難掃描。推論是每個檔案都是單獨列出的(即沒有目錄路徑資訊),您可能必須返回幾個頁面/螢幕才能找到特定檔案所在的目錄。
此外,find 不包含 DIR 指令中的 /A 資訊。我在所展示的命令中建議了一些屬性(這恰好顯示了您從某個專有系統上的 linux 獲得的額外有用性),但是如果您閱讀man
和info
上的頁面ls
,您將能夠看到什麼包括或不包括。