📜  仅从 CMD 获取文件名 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:21:51.001000             🧑  作者: Mango

仅从 CMD 获取文件名 - Shell/Bash

在Shell/Bash中,我们可以方便地获取命令行参数,例如获取传递给脚本的文件名,然而有时候可能需要获取当前目录下的文件名或者通过管道传递文件名的方式。

获取当前目录下的文件名

对于获取当前目录下的所有文件名,我们可以使用如下命令:

ls

这将返回当前目录下所有文件的名称列表,如果我们只关心某种特定类型的文件,可以使用通配符来限制返回结果。例如,如果我们只想获取所有的txt文件,可以使用如下命令:

ls *.txt
通过管道获取文件名

有时候我们可能需要通过管道方式将文件名传递给另一个命令,例如通过grep命令过滤文件内容。为了将文件名通过管道传递给另一个命令,我们可以使用find命令来获取文件名,例如:

find . -name '*.txt' | grep 'search_pattern'

这将返回所有txt文件名中包含'search_pattern'的文件名。

获取文件名参数

在Shell/Bash中,传递给脚本的参数可以通过$1$2$3等来引用,其中$1表示第一个参数,$2表示第二个参数,以此类推。如果我们想获取所有传递给脚本的参数,可以使用$@来引用。

例如,下面的示例脚本将输出所有传递给它的参数:

#!/bin/bash
for arg in "$@"
do
  echo "$arg"
done

我们可以通过以下命令行执行该脚本,并将两个参数传递给它:

./my_script.sh foo bar

以上命令将输出:

foo
bar

以上是仅从CMD获取文件名的一些方法,Shell/Bash有很多其它强大而方便的工具可以用来处理文件。此外,我们也可以将这些命令通过管道和重定向组合起来,实现更为复杂的操作。