在 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
,它是 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
,您将能够看到哪些属性应该包含,哪些不应该包含。