有没有办法使用 grep 搜索 PDF 文件,而无需先在 Ubuntu 中转换为文本?
这个问题的灵感来自
我看到这些结构
for file in `find . -type f -name ...`; do smth with ${file}; done
Run Code Online (Sandbox Code Playgroud)
和
for dir in $(find . -type d -name ...); do smth with ${dir}; done
Run Code Online (Sandbox Code Playgroud)
几乎每天都在这里使用,即使有些人花时间对这些帖子发表评论,解释为什么应该避免这种东西......
看到此类帖子的数量(以及有时这些评论被简单地忽略的事实)我想我还不如问一个问题:
为什么循环find的输出是不好的做法,为 返回的每个文件名/路径运行一个或多个命令的正确方法是find什么?
我可以ls -ld */用来列出当前目录中的所有目录条目。有没有类似的简单方法来列出当前目录中的所有常规文件?我知道我可以使用 find
find . -maxdepth 1 -type f
Run Code Online (Sandbox Code Playgroud)
或统计
stat -c "%F %n" * | grep "regular file" | cut -d' ' -f 3-
Run Code Online (Sandbox Code Playgroud)
但这些并没有让我觉得过于优雅。有没有一个很好的简短方法来只列出常规文件(我不关心设备、管道等)而不是当前目录的子目录?列出符号链接也是一个加分项,但不是必需的。
使用该ls命令,是否可以仅显示在特定日期、小时...之后创建的文件?
我问它是因为我有一个包含数千个文件的目录。
我希望看到自昨天以来创建的所有文件。
我使用ls -ltr但我必须等待才能看到所有文件...
有一个DIRECTORY/SINCE=date来自 OpenVMS的等价物?
是否有命令或标志可以从另一个文件克隆文件的用户/组所有权和权限?使权限和所有权与另一个文件完全相同?
我应该只用这种结构回显文件或目录的名称:
ls -Al | while read string
do
...
done
Run Code Online (Sandbox Code Playgroud)
ls -Al 输出 :
drwxr-xr-x 12 s162103 studs 12 march 28 12:49 personal domain
drwxr-xr-x 2 s162103 studs 3 march 28 22:32 public_html
drwxr-xr-x 7 s162103 studs 8 march 28 13:59 WebApplication1
Run Code Online (Sandbox Code Playgroud)
例如,如果我尝试:
ls -Al | while read string
do
echo "$string" | awk '{print $9}
done
Run Code Online (Sandbox Code Playgroud)
然后只输出没有空格的文件和目录。如果文件或目录有“个人域”之类的空格,则只有“个人”一词。
我需要非常简单的解决方案。也许有比 awk 更好的解决方案。
我知道如何删除txt当前目录下的所有文件rm *.txt。有谁知道如何删除当前目录中的所有文件,除了txt文件?
我想列出与某个模式匹配的所有文件,同时忽略大小写。
例如,我运行以下命令:
ls *abc*
Run Code Online (Sandbox Code Playgroud)
我想查看所有将“abc”作为文件名一部分的文件,忽略大小写,例如
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
Run Code Online (Sandbox Code Playgroud)
我已经在手册页中搜索了案例,但找不到任何内容。
因此,在目录上下文中*使用时,您可以将用作所有文件的通配符cp。有没有办法复制除文件之外的所有x文件?