如何在 Linux 中列出具有完整路徑的檔案?

如何在 Linux 中列出具有完整路徑的檔案?

在 Linux 中,是否有相當於Dir /s /a /b列出完整路徑和檔案名稱的位置?我是 Linux 新手,沒有 GUI,我想了解硬碟上的結構。

答案1

使用find命令。預設情況下,它將遞歸地列出從目前目錄開始的每個檔案和資料夾,以及完整(相對)路徑。

如果您想要完整路徑,請使用:

find "$PWD"

如果您想要相對路徑,請使用:

find .

這裡,$PWD是一個包含目前工作目錄的變數。

一些選項:

  • 如果您只想將其限制為文件或資料夾,請分別使用find "$PWD" -type ffind -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 獲得的額外有用性),但是如果您閱讀maninfo上的頁面ls,您將能夠看到什麼包括或不包括。

相關內容