许多人会发现,这是重复的问题,但我已经通过了所有的问题之前问这个话题,但没有一个适合我.

我想使用ls命令打印特定文件格式的完整路径名.到目前为止,我找到了一段代码,可以打印目录中的所有文件,但不能打印完整路径.

for i in io.popen("ls /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7"):lines() do
  if string.find(i,"%.*$") then 
     print(i) 
  end
end

这将打印出根目录和子目录中的所有文件.

输出:

  0020111118223425.lvf
  2012
  2012 (2009).mp4
  3 Idiots
  Aashiqui 2
  Agneepath.mkv
  Avatar (2009)
  Captain Phillips (2013)
  Cocktail

我想要像这样的输出:

  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/0020111118223425.lvf           [File in Root Directory]
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/2012/2012.mkv
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/2012 (2009).mp4                [File in Root Directory]
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/3 Idiots/3 Idiots.mkv
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/Aashiqui 2/Aashiqui 2.mkv
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/Avatar (2009)/Avatar (2009).mkv
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/Captain Phillips (2013).mkv
  /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/Cocktail/Cocktail.mkv

EDIT:

当我使用我的代码时,它会显示错误的目录

for i in io.popen("ls -d $PWD/* /mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7"):lines() do
    if string.find(i,"%.*$") then
      print("/mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7/"..i)
    end
  end

在"/mnt/mediashare/net/192.168.1.220_STORAGE_1d1b7"中找不到文件,而是打印机器根目录文件.

推荐答案

你可以用

  ls -lrt -d -1 "$PWD"/{*,.*}   

它还将捕获隐藏的文件.

Linux相关问答推荐

Bash:将带有新行的字符串转换为带有逗号、内联的唯一值的字符串

如何在 ERE 中结束这个正则表达式

sed:用空格替换

中的换行符

linux shell 脚本获取文件夹中

Google Cloud Ops Agent Mongo 集成错误 - AuthenticationFailed:SCRAM 身份验证失败,storedKey 不匹配

在 Windows 上通过 SSH 运行 django 应用程序

如何忽略 diff 命令中的一些差异?

如何在初始化脚本中以特定用户身份运行命令?

打印当前一周的星期一的日期(在 bash 中)

如何在不重新打印的情况下更新终端中的打印消息

php.ini 更改,但在 Ubuntu 上无效

bash 脚本中的自动 docker 登录

如何在 Linux 上传递带感叹号的参数?

错误:ld.so:无法预加载对象 LD_PRELOAD:忽略

将 jiffies 转换为毫秒

如何等待第一个命令完成?

linux中netstat和ss的区别?

如何使用终端打开-虚线文件名?

在 Linux 上更新 PyCharm

sed - 如何使用 sed 进行正则表达式组