linux - 通过传递命令行参数列出目录中的文件

标签 linux bash shell unix

我正在尝试使用命令行参数列出任意数量目录中的文件。 我试图通过命令行传递目录路径并显示搜索目录中的文件。像这样的东西。 “目录:PATH1” 文件 文件 文件

“目录:PATH2” 文件 文件

所以我使用 $* 传递所有命令行参数,但它只显示第一个列出的目录中的文件。

#!/bin/bash


cd $*
for filename in *
do
        echo "Directory: $*"
        echo $filename
done

最佳答案

以防万一目录名中有空格,您可能想使用“$@”,检查目录是否存在也无妨:

  for dir in "$@" ; do
    if [ -d "$dir" ] ; then
      echo "Directory: $dir"
      ls "$dir"  # If all you want is to show the contents, this should do
    else
      echo "Not a directory: $dir"
    fi
  done

关于linux - 通过传递命令行参数列出目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14711695/

相关文章:

c - 为什么malloc不“用完”计算机上的内存?

linux - 保留文件中最后 x 条日志 - Linux

python - 在 Linux 中使用 Unicode 文件名创建文件

Bash - 如何调用在父 shell 中声明的函数?

linux - Shell GNU-Screen -X Stuff 问题

python - Airflow BashOperator 不起作用,但 PythonOperator 可以

linux - 如何在bash中输出目录的不可读内容

java - 在与 java 程序不同的目录中运行 Bash 命令

bash - 如何获取 bash 变量的前导空格

linux - 防止文件被linux中的另一个进程移动