一尘不染

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

linux

许多人会发现这是重复的问题,但是在询问有关此主题的内容之前,我已经经历了所有问题,但没有一个对我有用。

到目前为止,我想使用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”中未找到文件,表明其打印了机器的根目录文件。


阅读 3265

收藏
2020-06-07

共1个答案

一尘不染

您可以使用

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

它还将捕获隐藏文件。

2020-06-07