在具有完整路径的 Linux 中使用 ls 命令列出文件

新手上路,请多包涵

许多人会发现这是重复的问题,但在被问及这个话题之前,我已经解决了所有问题,但没有一个对我有用。

我想使用 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

编辑: 我已经使用了这一切,但它不适用于我在 LUA 中的代码。

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

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”中找不到文件,它会打印机器根目录文件。

原文由 Prakash.DTI 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 657
2 个回答

您可以使用

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

它还将捕获隐藏文件。

原文由 Totoro 发布,翻译遵循 CC BY-SA 4.0 许可协议

你可以试试这个:

 ls -d $PWD/*

原文由 mgigirey 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题