我创建了一个脚本,允许用户通过复制和粘贴该文件来选择该文件。然后对该文件执行 grep。我想知道是否可以在目录中的每个文件前面放一个数字,这样用户只需键入一个数字。
我尝试过的:
ls -l再ls | wc -l然后让用户选择相应的文件编号,没有运气。ls -i, 尝试使用该文件的节点号执行 grep ,但不走运。在岩组:有没有办法使用的方式ls来仅列表文件和文件夹在当前目录中符合特定的是通配符或正则表达式模式?
例如,假设我有一个以字符开始的多个文件#,下面的命令并没有做我想做的:
ls -l #*
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 find, ie 来做到这一点find . "#*" -maxdepth 1 -print,但我正在寻找一种解决方案,列出具有ls.
我认为这样做的一种方法是解析 ls 的输出(但 AFAIK通常不推荐这样做)。
我在做一个
find . -iname '*sitesearch*' | grep demo
Run Code Online (Sandbox Code Playgroud)
因为我知道文件应该是some/path/SiteSearch/demo/SiteSearch.html,但结果是有人把文件放在 as 中some/path/SiteSearch/demo/index.html,所以找不到文件。
有没有更好的方法来进行搜索?
例如对于这种情况,如果我这样做
find . -iname '*demo*' | grep -i sitesearch
Run Code Online (Sandbox Code Playgroud)
它会找到它的。但我不想总是想它是什么可能性并弄清楚要使用什么模式。我只想要一种方法,当文件和路径同时具有这两个关键字时,然后将其打印出来。例如,如果有一种方法将ls所有文件都放在每一行的完整路径,那么我们可以这样做
ls --some-flags | grep -i demo | grep -i sitesearch
Run Code Online (Sandbox Code Playgroud)
或者也许是另一种方式/更好的方式。
在开始之前,请假设我只有 UNIX 的基本知识。基本意思我从上周开始才开始阅读它,用于与工作相关的目的。
我一直在尝试使用该ls命令来提供包含视频媒体的特定目录的列表。我需要显示文件名、文件大小和创建日期。我通过使用以下命令实现了这一点:
ls -gohU
Run Code Online (Sandbox Code Playgroud)
这很好,但搜索还包括此目录中的子目录。搜索后,我找到了另一个显示文件并排除文件夹的命令:
find . -maxdepth 1 -not -type d
Run Code Online (Sandbox Code Playgroud)
我想知道的是,是否有一个命令可以找到目录中不包括子目录的所有文件,并显示它们的文件名、大小和创建日期。
PS 如果有帮助,我也在 Mac OS 10.6.8 上使用终端 - bash。
因此,命令的结果echo *应该是“当前目录中的任何文件”。它应该包括点文件吗?
同样,结果是否应该ls *包含点文件?
我输入ls我的终端,
A0001 A0004 A0007 A0010 A0015 A0018 A0021 A0024 A0028 A0031 A0034 A0037 A0040 A0043 A0046 A0049 A0052 A0055 A0058 A0061 A0064 A0067
A0002 A0005 A0008 A0013 A0016 A0019 A0022 A0025 A0029 A0032 A0035 A0038 A0041 A0044 A0047 A0050 A0053 A0056 A0059 A0062 A0065 A0068
A0003 A0006 A0009 A0014 A0017 A0020 A0023 A0027 A0030 A0033 A0036 A0039 A0042 A0045 A0048 A0051 A0054 A0057 A0060 A0063 A0066 A0069
Run Code Online (Sandbox Code Playgroud)
您会看到,A0001、A0002、A0003 等首先在列中排序,然后是下一列,然后是下一列。我想知道如何让显示,有类似的东西,
A0001 A0002 A0003 A0004 ....
A0024 A0025 A0026 A0027 …Run Code Online (Sandbox Code Playgroud) 命令是什么:
ls | wc -l
Run Code Online (Sandbox Code Playgroud)
做?我知道
wc <filename>
Run Code Online (Sandbox Code Playgroud)
给出行、词和字符,以及
wc -l <filename>
Run Code Online (Sandbox Code Playgroud)
打印行数。但是它如何与 ls` 一起使用尚不清楚。它有什么作用?
当我ls -lrt在 Unix 文件夹上运行命令时,我得到以下输出
MyServer> ls -lrt
total 10
drwxr-x--- 3 UnixUser other 512 Jul 22 2011 FolderA
lrwxrwxrwx 1 UnixUser other 42 Aug 23 2011 BEA -> ../../../Some/Folder/SOLARIS/BEA
Run Code Online (Sandbox Code Playgroud)
我不确定这些文件夹中的 BEA 和 Perlx.x 是什么。它们似乎不是文件或文件夹。为什么除了它们之外还有一个箭头指向其他地方?
我想查看过去 10 天内修改的所有文件以及它们的所有者,因此我输入了以下内容以了解将返回多少结果;
find . -maxdepth 1 -mtime -10
Run Code Online (Sandbox Code Playgroud)
然后我发出了命令;
find . -maxdepth 1 -mtime -10 -exec ls -lh {} \;
Run Code Online (Sandbox Code Playgroud)
这两个命令给出了非常不同的结果,但我不明白为什么。有人可以解释发生了什么以及为什么它们会产生不同的结果吗?
我正在寻找 OS/X 中的特定文件。
我可以使用以下命令查看文件:
ls -alR | grep "mkmf.*"
Run Code Online (Sandbox Code Playgroud)
这表明我的文件存在。
如何找到文件所在的目录。
非常感谢