Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何在Unix中查看目录中的文件?_Shell_Unix - Fatal编程技术网

Shell 如何在Unix中查看目录中的文件?

Shell 如何在Unix中查看目录中的文件?,shell,unix,Shell,Unix,我正在编写一个shell脚本,它需要打印目录中文件和子目录的各种数据。我首先输入我的目录名,如下所示。name=$1,所以我只是想知道如何在目录中查找并使用其中的文件等。例如如何引用file1.txt和file2.txt等?您可以使用find和wc命令 # As an example, find "$name" -perm -u=rwx | wc -l 假设您拥有对$name感兴趣的目录,那么只需执行以下操作即可获取文件 files=`ls $name` 比如说,你可以做这样的事情

我正在编写一个shell脚本,它需要打印目录中文件和子目录的各种数据。我首先输入我的目录名,如下所示。name=$1,所以我只是想知道如何在目录中查找并使用其中的文件等。例如如何引用file1.txt和file2.txt等?

您可以使用
find
wc
命令

# As an example,
find "$name" -perm -u=rwx | wc -l 

假设您拥有对$name感兴趣的目录,那么只需执行以下操作即可获取文件

files=`ls $name`
比如说,你可以做这样的事情

   files=`ls $name`
    for file in $files
    do
    if [ -r $name/$file ]
    then
    echo "$file is readable"
    fi
    done


请说得更具体些。你想干什么?如何引用文件?回显名称,显示内容,什么?我只需要打印可读、可写和可执行文件的总数。我正计划创建一个循环,分别检查每个文件。谁能执行该文件重要吗?假设我有一个权限为241的文件(可由所有者写入,可由组读取,可由其他人执行)。这算是可执行的吗(我不能执行,但其他人可以执行)?这听起来像是
find
的一项工作,您不必按名称引用文件,因为
find
决定了文件名并完成了大部分繁重的工作。如何在if语句中使用目录中的第一个文件,比如我的目录名为Foo,目录中有一个文件名为file,但我不知道文件名是什么。如果我的问题没有意义,很抱歉。在
if
语句中测试什么,这个find命令已经检查了“rwx”权限。我必须为每种类型打印一个单独的句子,比如一个用于可读,一个用于可写,一个用于可执行,它应该能够检查子目录是否也是rwx。你真的应该在你的问题中包括这一点!您可能是指
-perm-u=rwx
-没有
-
,权限匹配是准确的;i、 例如,仅返回组和其他人没有这些权限的文件;我还建议您重复引用
$name
。谢谢您的帮助!这是否只是打印名称内的文件和目录的名称,我如何检查每个文件是否为r、w或x我尝试了如果[-r$file],然后回显“$file is readable”fi,如果这确实回答了您的问题,它就不起作用了,请随意接受它作为答案和/或向上投票。解析
ls
输出,尤其是在
for
循环中,是个坏主意-请参阅。改为使用路径名扩展:
用于“$name”/*.
中的文件。您应该在
[…]
中双引号引用变量引用,以便解析不会与带有嵌入空格的文件名中断。
find . -name '*.txt' -exec cat {} +
find . -name "*.txt" | xargs cat