在 find 命令中从变量中排除一些文件
Exclude some files from variable in find command
我想在 find 命令中排除一些文件,但效果不是很好!这是我所做的:
arg=
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
发布的 thread 有多个 pros/cons 选项。
(最慢的)之一:
#!/bin/bash
arg=
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=
exclude='^(/etc/alternatives/awk|/usr/sbin/poweroff|/usr/bin/ls)$'
find $arg -type f,l,c,b -regextype posix-extended -not -regex "${exclude}" -print
我想在 find 命令中排除一些文件,但效果不是很好!这是我所做的:
arg=
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
发布的 thread 有多个 pros/cons 选项。 (最慢的)之一:
#!/bin/bash
arg=
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=
exclude='^(/etc/alternatives/awk|/usr/sbin/poweroff|/usr/bin/ls)$'
find $arg -type f,l,c,b -regextype posix-extended -not -regex "${exclude}" -print