我的代码
echo $ls | /var/lib/judgem/records/
我正在尝试让脚本显示文件夹“records”中的所有文件。
我应该怎么做?
将目录作为参数传递给ls
命令:
ls /var/lib/judgem/records
$PWD
指定了当前目录。如果你想要其他目录,就把它放在$PWD
的位置。 - Barmar或者,如果你想列出另一个目录的内容而不显示完整路径,也就是好像你在那个目录里一样,但是在命令完成后不会跳转到该目录,可以使用子 shell:
(cd /var/lib/judgem/records/ && ls)
您会注意到您仍然停留在原来的目录,但文件列表中没有以 /var/lib/judgem/records 开头的完整路径。
您会注意到您仍然停留在原来的目录,但文件列表中没有以 /var/lib/judgem/records 开头的完整路径。
cd
命令。当你在ls
命令后面跟上一个目录名参数时,它会列出该目录的内容。只有在使用ls /var/lib/judgem/records/*
命令时才会显示完整路径。请注意,不要改变原文的意思。 - Barmarfind /var/lib/judgem/records/ -type f -maxdepth 1
查找 /var/lib/judgem/records/ 目录下的文件,最大深度为1。
-maxdepth 1
,否则您的命令将列出 /var/lib/judgem/records/
的整个 子树 中的所有文件,而不仅仅是直接位于 /var/lib/judgem/records/
中的文件。 - mklement0要列出另一个目录,请在命令后面提供该目录。 应该看起来像这样:
ls /var/lib/judgem/records
这是 Bash。
\
作为目录分隔符的?! - Keith Pinsonls /var/lib/judgem/records
。 - Keith Thompsonbash
无关:ls
是一个可执行文件(而不是shell内置命令),/var/lib/judgem/records
是一个字符串字面量(尽管它没有引号,但鉴于其值,我所知道的任何shell都不会对其进行扩展)。 - mklement0
find "$DIRECTORY" -type f -maxdepth 1
的命令,其中 $DIRECTORY 是你要操作的目录。如果希望搜索子目录中的文件,就删去-maxdepth 1
。如果希望搜索文件和子目录,就删去-type f
。 - mpontillo