非常基本的问题,ls一个不同的目录并保存文件

非常基本的问题,ls一个不同的目录并保存文件

我真的不明白他的问题我错在哪里。第一部分是。

列出 /etc 中名称中包含 1 个或多个数字的所有文件和目录名称。请记住在 ls 命令中使用“-d”,并且不要进入子目录(即不递归)。将此列表保存在 caine 的主目录中,作为名为“digit”的文件。当 CD 到 /etc 时执行“ls”命令,这样您的名称就可以避免“/etc/”出现在它们前面。

这是通过以下命令完成的:

ls -d *[0-9]* > digit

然而,问题的第二部分是;

重做上一个问题,除了这次在 /home/caine 中 CD 时重复练习。将输出保存在 digital2 中。 “digit”和“digit2”应该相同,除了“digit2”中所有文件名都将以“/etc/”开头。

我认为下面的代码可以工作;

ls -d ../../etc/ *[0-9]* > digit2

当我查看文件的内容时,它似乎忽略了我使用 * 和数字设置的参数,我尝试移动该语句,但我很困惑为什么这不起作用。

任何建议,或者对我出错的地方的解释,将不胜感激。

我知道这可以通过 grep 来实现,但即使我已经开始学习它,我仍然很想知道我如何无法获得正确的语法!

答案1

您添加了一个额外的空格,它将您的 glob 分成两个单独的参数:

ls -d ../../etc/ *[0-9]* > digit2
#               ^ space

它应该是

ls -d /etc/*[0-9]* > digit2

../..除非您确实喜欢查看文件中的所有这些点,否则不需要。

相关内容