标签: find

Bash 脚本的问题

我想编写一个简单的脚本来检测由 Windows 病毒创建的文件。通常它会创建一个 .exe 文件,与它放置的目录同名。

这是脚本。只有在路径名不包含\n 时才有效。有人可以帮我修复这个脚本,拜托!

#!/bin/bash
if [ $# == 0 ]; then
    echo ""
    echo "==== Give me a directory to begin with! ===="
    echo ""
    exit
fi

for f in `find $1 -name '*.exe'` ; do
    filename=`basename "$f" .exe`
    dir_name=`dirname "$f"`
    current_dir_name=`basename "$dir_name"`

    if [ $filename == $current_dir_name ]; then
        rm -f "$f"  # It can't remove files 
                    # where the path contains spaces or \n ??!!
    fi
done
Run Code Online (Sandbox Code Playgroud)

bash find

1
推荐指数
1
解决办法
2081
查看次数

使用 grep 查找字符串

我试图在 /home/dir/ 下的某处找到一个(应该)包含字符串“1896.345”的文件。

关于如何做到这一点的任何想法?谢谢

grep find

1
推荐指数
1
解决办法
1836
查看次数

如何在没有路径的情况下列出子目录中的所有文件?

我有 1000 个目录和 5-15 个包含 mp3 文件的子目录。我想列出所有没有路径的歌曲。可行吗?

或者有没有办法从路径中获取最后一个“\”之后的单词,以便我们可以从中检索文件名?一些正则表达式之类的?

find ls

1
推荐指数
1
解决办法
5559
查看次数

以下 -exec 命令有什么问题

我在以下命令中出错

cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {}
Run Code Online (Sandbox Code Playgroud)

错误:

find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)

command-line find

1
推荐指数
1
解决办法
288
查看次数

如何在 shell 脚本中使用“查找”从当前目录进行搜索?

我希望程序看起来像这样:

read a
if[ find . name $a ]; then
  echo "You found the file"
else "You haven t found the file"
fi
Run Code Online (Sandbox Code Playgroud)

scripts directory find

1
推荐指数
1
解决办法
3万
查看次数

递归提取所有 7z

我有许多嵌套在许多子文件夹中的 7z 存档,并且希望将所有这些存档提取到它们所在的文件夹中,然后删除原始存档。

我已经找到了如何执行此操作,同时提取到根目录。

while [ "`find . -type f -name '*.7z' | wc -l`" -gt 0 ]; do find -type f -name "*.7z" -exec 7za x -- '{}' \; -exec rm -- '{}' \;; done
Run Code Online (Sandbox Code Playgroud)

然而,所有档案都被解压到我执行命令的目录中——我想将所述档案提取到保留原始结构的原始位置,但不确定如何更改它来做到这一点。

archive find 7zip

1
推荐指数
1
解决办法
6596
查看次数

别名按名称搜索文件并在vim中打开它们

我已经有了(更多)快速搜索文件的别名:

alias f='find . -iname'
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

$ f *statis*
./main/statistics.py
./test/test_statistics.py
Run Code Online (Sandbox Code Playgroud)

现在,我想要另一个别名来执行相同的搜索,但不是打印出找到的文件,而是在 vim 中打开它们。理想情况下,它会在找到多个文件时工作。

我试过(使用 'echo' 而不是 'vim' 进行调试):

 alias fvi='find . -exec echo {} + -iname'
Run Code Online (Sandbox Code Playgroud)

...但似乎-exec取消了-iname之后的到来:

$ fvi *statis*
 ./main/statistics.py ./main/probability.py ./test/test_statistics.py 
 ./test/test_probability.py
Run Code Online (Sandbox Code Playgroud)

vim command-line bash alias find

1
推荐指数
1
解决办法
1478
查看次数

查找具有特定 mime 类型的所有文件

我将大量(Android SDK)文件从共享目录复制到我的系统。现在,它们的 MIME 类型为application/x-shellscriptor 的所有文件application/x-executable似乎都不可执行。例如,当我尝试运行时出现mksdcard此错误:

$ ./mksdcard
bash: ./mksdcard: Permission denied
Run Code Online (Sandbox Code Playgroud)

如何仅找到具有这些 MIME 类型的文件?然后我如何更改这些权限?

注意事项

1- 当我find <path> -type f -executable以 root 用户身份尝试时,它会显示所有文件(甚至 .PNG 文件),而当我以标准用户身份尝试时,它什么也没显示。我不知道如何过滤文件并注意它们的 MIME 类型。

2- 当前无法访问共享目录(源)。

permissions find 16.04

1
推荐指数
1
解决办法
2011
查看次数

使用 find 的脚本在我执行时运行良好,但无法从 cron 正确运行

谁能告诉我这个脚本有什么问题?

它在 中不起作用cron,但在我正常执行时工作正常。

警告:此命令很危险,可能会删除大量文件

#!/bin/bash

/bin/find  .  -maxdepth 1 -type d  -ctime +2 -exec /bin/rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)

scripts cron find

1
推荐指数
1
解决办法
94
查看次数

如何查找小于 10 MB 的文件?

我需要在当前目录中找到一个文件,其大小应小于或等于 10 MB。

ls -lh 给了我每个文件的文件大小,但不确定如何找到大小小于或等于 10 MB 的文件。

host@407d:t1_snapshot$ ls -lth
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到吗?

find

0
推荐指数
1
解决办法
8712
查看次数

标签 统计

find ×10

bash ×2

command-line ×2

scripts ×2

16.04 ×1

7zip ×1

alias ×1

archive ×1

cron ×1

directory ×1

grep ×1

ls ×1

permissions ×1

vim ×1