bash - 在 find 命令中从变量中排除一些文件
问题描述
我想在 find 命令中排除一些文件,但效果不是很好!这是我所做的:
arg=$1
exclude="/etc/alternatives/awk
/usr/sbin/poweroff
/usr/bin/ls"
find $arg -type f,l,c,b -path /etc/alternatives/awk -prune -o -print
在这个例子中,我只使用了一个文件/etc/alternatives/awk
,我不知道如何告诉脚本在我的变量中起作用exclude
。
更新:
我应该只使用这种结构吗?
find $arg -type f,l,c,b -path /usr/bin/pwd -prune -o -path /etc/alternatives/awk -prune -o -path /usr/sbin/poweroff -prune -o -path /usr/bin/ls -prune -o -print
解决方案
发布的线程有多种选择,各有优缺点。之一(最慢的):
#!/bin/bash
arg=$1
exclude='^/etc/alternatives/awk$|^/usr/sbin/poweroff$|^/usr/bin/ls$'
find $arg -type f,l,c,b | grep -Ev "${exclude}"
或者您可以尝试在find
没有grep
-ing 的情况下本地执行此操作:
#!/bin/bash
arg=$1
exclude='^(/etc/alternatives/awk|/usr/sbin/poweroff|/usr/bin/ls)$'
find $arg -type f,l,c,b -regextype posix-extended -not -regex "${exclude}" -print
推荐阅读
- node.js - mac更新后React App启动时出错
- python - 通过命令提示符安装 chatterbot 库时出错
- python - 有人可以解释为什么我们在 django 的 CreateView 中的 form_valid 方法中返回 super().form_valid(form) 吗?
- javascript - 使用 puppeteer 访问从网络抓取返回的数组的特定索引
- google-chrome-extension - Chrome 网上商店要求主机许可理由,尽管没有它
- python - 使用下降毫秒将字符串解析为日期时间
- javascript - 一个图像元素中的多个图像源
- javascript - 如何在 Firebase Auth 中阻止用户在没有登录权限的情况下访问其他页面
- oracle - 是连续应用 oracle OBIEE 捆绑补丁还是只应用最新的
- git - git重置了,现在我无法推送