实际的家庭作业问题是
- 列出不属于 root 且不是在 7 月创建的所有文件/目录。
我找不到办法使用
LS
和
grep
输出文件 ~/NotOwnedByRoot.txt
find / \! -user root -d -maxdepth 1 -exec ls > ~/NotOwnedByRoot.txt {} +
我也尝试过
find / \! -user root -type d -maxdepth 1 > ~/NotOwnedByRoot.txt
我收到错误
find: 警告:您在非选项参数 ! 之后指定了 -maxdepth 选项,但选项不是位置性的(-maxdepth 影响在其之前指定的测试以及在其之后指定的测试)。请在其他参数之前指定选项。
答案1
您可以将 ls 和 grep 一起使用,这非常简单,并且使用 grep 中的 -v 选项您可以搜索不存在的单词或短语,因此它将输出与您的搜索不相关的所有内容。
在您想要执行此操作的目录中尝试:ls -l | grep -v 根 ||七月
第一部分ls-l按长列表顺序列出所有文件
这|符号称为管道,它接受上一个命令的输入并将其用作下一个命令的输入,在这种情况下 ls -l 将用作“grep”的输入。
第二部分grep -v 根目录使用 grep 与-v选项,与搜索项 root 一起使用-v选项用于查找所有没有您搜索内容的内容,因此它将查找没有“root”的所有内容。
终于到了最后一部分||七月, 这||基本上意味着 grep 中的“和”,因此您指定两个或多个搜索词,“七月”是第二个搜索词。***
PS:我不认为问题是要求您创建一个名为“NOTOWNEDBYROOT”的文件,而是要求您在目录中搜索不属于 root 或于 7 月创建的所有文件/子目录