【问题标题】:UNIX: List files in directory with relative path [closed]UNIX:使用相对路径列出目录中的文件
【发布时间】:2013-04-30 14:04:33
【问题描述】:

问题是:

你会用什么命令来列出你的文本文件 fileAsst 目录(使用相对路径)?

上一个问题是:

发出命令列出这些文本文件的名称,使用 fileAsst 目录的绝对路径作为命令的一部分。

答案是:

~/UnixCourse/fileAsst/*.txt

我想知道如何使用相对路径列出此目录中的文件。我尝试了几个命令,包括:

ls ~/UnixCourse/fileAsst/*.txt|awk -F"/" '{print $NF}'
(cd ~/UnixCourse/fileAsst/*.txt && ls )

还有很多其他人。

但它一直告诉我他们无效。我知道它必须是一个正确的答案,因为其他人已经通过了这个。但是现在我被卡住了,非常沮丧=(

更新:

去了 CS 实验室后,有人帮我解决了问题。一开始我需要在某个工作目录中,但我不是。切换到该目录后,我只需要命令:

../UnixCourse/fileAsst/*.txt

这为我解决了问题。感谢所有提供帮助的人,我希望这对其他人有所帮助。

【问题讨论】:

  • 相对路径是任何不以/ 开头的路径,需要注意的是~ 是绝对路径的简写。因此,如果您在主目录中,echo UnixCourse/fileAsst/*.txt 会生成一个相对名称列表; (cd UnixCourse; echo fileAsst/*.txt)(cd UnixCourse/fileAsst; echo *.txt) 也是如此——所有这些都需要注意,“文本文件”是名称以 .txt 结尾的文件。
  • @JonathanLeffler 非常感谢您的回复。与 Fredrik 类似,您的代码在测试时运行良好,但是当我试图通过他的自动评分器获取它时,它告诉我这不是它想要的。不过,我感谢您的帮助。
  • ls -1 ~/UnixCourse/fileAsst/*.txt 怎么样?
  • 谢谢@ott-- 但那行正在返回我的绝对路径
  • 正如我之前的评论至少暗示的那样,要能够创建文件的相对路径,您必须知道该路径必须相对的目录。查看Absolute path to relative path in Unixbash: convert absolute path into relative path given a current directory,仅举两个相关的问题。

标签: linux macos unix


【解决方案1】:

尝试:

$ cd ~/UnixCourse/fileAsst/
$ find .

作为单行(在子shell中执行)

$ (cd ~/UnixCourse/fileAsst/ && find .)

另一种方法

$ (cd ~/UnixCourse && ls fileAsst/*.txt

$ ls ~/UnixCourse/fileAsst/*.txt

【讨论】:

  • 感谢 Fredrik 的快速回复,但我忘了说答案必须是一个班轮
  • 查看更新,将表达式放在括号中会在子shell中执行它而不更改父级,即在这种情况下更改目录。
  • 感谢 Fredrik,尽管您的代码运行良好,但他的自动评分器仍然说这不是正确的响应。非常感谢您的帮助。
  • 尽管这很好用,但我仍然在尝试通过自动评分器获取它时收到说错误消息 =(
  • 我和强大的 Jonathan Leffler 给出的答案是正确的,我建议你对这些进行一些排列,看看你是否能通过自动评分器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 2021-08-31
  • 2010-09-19
相关资源
最近更新 更多