bash - 对于目录中的文件,仅回显文件名(无路径)

标签 bash shell

如果我用 for 循环迭代一个目录,我如何才能只回显文件的文件名?

for filename in /home/user/*
do
  echo $filename
done;

将使用文件名提取完整路径。我只想要文件名。

最佳答案

如果你想要一个原生的bash解决方案

for file in /home/user/*; do
  echo "${file##*/}"
done

上面使用了 shell 原生的 Parameter Expansion,不需要调用外部二进制文件,例如 basename

但是,我可以建议只使用 find

find /home/user -type f -printf "%f\n"

关于bash - 对于目录中的文件,仅回显文件名(无路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011233/

相关文章:

linux - zip 在终端中有效,但在脚本内无效?

c - 优雅地退出 C 应用程序

bash - 在 bash 中,退出脚本而不退出 shell 或从子 shell 中导出/设置变量

linux - Shell脚本根据参数将单行翻译成多行

Bash:读取输入可用(是否按下任何键?)

linux - 我如何将 sed 与 unicode 字符一起使用

linux - 在 shell 中将 .txt 转换为 .csv

bash - 在 Bash 中删除 Unicode 行分隔符 "U+2028"

linux - EC2 - 未找到 Codedeploy NPM 错误

javascript - 如果进程尚未运行,则让 javascript 运行该进程